<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Software-Engineering-Forum - Medium]]></title>
        <description><![CDATA[Software-Engineering-Forum - Medium]]></description>
        <link>https://medium.com/software-engineering-forum?source=rss----8e57d451e8d8---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Software-Engineering-Forum - Medium</title>
            <link>https://medium.com/software-engineering-forum?source=rss----8e57d451e8d8---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 13 Nov 2026 10:54:01 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/software-engineering-forum" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[Do not join a software company if you see so many project managers]]></title>
            <link>https://medium.com/software-engineering-forum/do-not-join-a-software-company-if-you-see-so-many-project-managers-1d4797e223fd?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/1d4797e223fd</guid>
            <category><![CDATA[work-life-balance]]></category>
            <category><![CDATA[attrition]]></category>
            <category><![CDATA[bad-company]]></category>
            <category><![CDATA[good-company]]></category>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:20:14 GMT</pubDate>
            <atom:updated>2024-11-24T20:07:08.538Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/626/0*xw4v9x0v2mSNlfEO.jpg" /></figure><p>A school friend recently asked me if a particular software company would be a good place for his son to apply. Since I wasn’t familiar with the company, the first thing I did was search for it on LinkedIn to see if anyone I knew worked there. Unfortunately, I couldn’t find anyone I had enough of a connection with to reach out, so I had to analyze the company based on the available data.</p><p>The company had been around for over 10 years, and I saw a decent list of client logos on their website. They also had a solid social media presence, with events and posts on Facebook. In terms of staffing, there seemed to be a fair number of Software Engineers and Quality Assurance Engineers.</p><p>However, one thing stood out to me: there was a disproportionately high number of Project Managers and Senior Project Managers. Some had been with the company for years, while others had joined more recently. When I looked at people who had worked there but had since moved to other companies, I noticed a high employee turnover rate, with a significant portion being relatively young employees. There were also quite a few Project Managers among those who had left.</p><p>Now, why do companies need Project Managers? Typically, Project Managers are there to oversee projects and ensure they run smoothly. But in a software company, senior technical staff often take on much of the project management responsibility themselves, or a Business Analyst might expand their role to include project management tasks. From my experience, when a company has a lot of Project Managers and Coordinators, it’s often a sign that their projects are in disarray.</p><p>Messy projects often start when companies make promises they can’t keep — committing to unrealistic deadlines and scope in order to win business. When a software company does this repeatedly, it can create a vicious cycle: one project runs over time and budget, so they start new projects just to keep revenue flowing. Meanwhile, engineers are pushed to work long hours, trying to meet unrealistic quality standards and deadlines. Eventually, clients start to notice the issues, and projects begin to unravel.</p><p>This is where the need for strong Project Managers comes in. They’re needed to try and salvage these messy projects, to manage expectations and steer them toward completion, no matter how difficult the situation. The more chaotic the project, the more experienced and capable the Project Manager needs to be.</p><p>In contrast, when a software company is transparent about what it can deliver and doesn’t make false promises, project management is a much simpler task. In these cases, senior technical people or Business Analysts often handle project management as a secondary responsibility. If the company has a challenging client, but the client trusts the company to deliver quality work on time, the need for intensive project management diminishes. Meetings become more of a formality, and high-caliber project managers are no longer necessary.</p><p>Now, don’t get me wrong — Project Managers are absolutely essential in any software company. But when a company has an excessive number of Project Managers (especially those whose roles aren’t “stretched” from other responsibilities), it’s often a red flag that the company is struggling with its projects. A healthy software company typically doesn’t need 10 Project Managers for 100 employees.</p><p>If you notice a high turnover rate, especially among employees who stay for less than a year, combined with a lot of pure Project Managers, that’s a strong indication that the company may not be a great place to work. It suggests that there are underlying issues with project delivery, employee satisfaction, and overall company culture.</p><p>So, in the end, I told my friend: “I don’t know the company well enough to give a definitive answer, but based on what I’ve been able to gather, it doesn’t seem like a great place to join, especially if you’re looking for a positive work environment.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1d4797e223fd" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/do-not-join-a-software-company-if-you-see-so-many-project-managers-1d4797e223fd">Do not join a software company if you see so many project managers</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Are Performance and Potential the same?]]></title>
            <link>https://medium.com/software-engineering-forum/are-performance-and-potential-the-same-9f45a07b07ee?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/9f45a07b07ee</guid>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:19:59 GMT</pubDate>
            <atom:updated>2024-11-24T20:05:04.165Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/900/0*MlGIxC19VfoS0MpI" /></figure><p>Performance and potential are not the same; they are distinct measures of an employee’s abilities. However, in most cases, there is some correlation between the two.</p><p><strong>What is Performance?</strong></p><p>In simple terms, performance refers to how well you do your daily tasks in the eyes of your manager. To perform well in your current job, you need the right skills, education, and training, along with the motivation to keep going, the IQ to understand and make smart decisions, and the experience to find the best way to do your work. Performance can be measured against criteria that you and your manager set and agree upon.</p><p><strong>What is Potential?</strong></p><p>This refers to your manager’s perception of your ability to be promoted to higher roles within the organization and your potential to contribute to achieving organizational goals. To shape this perception, you need to demonstrate your skills, enthusiasm, and your ability to learn and adapt to new responsibilities. Since you’re not yet performing in the higher role, your manager can’t directly measure your performance in it. However, they can form an opinion based on how well you handle your current role.</p><p><strong>How can you perform well in your current role?</strong></p><p>The biggest challenge many people face in performing well is being in the wrong job — perhaps even the wrong company. To perform well, the daily tasks of your job need to be something you genuinely like and enjoy doing. If your passion lies elsewhere and you’re just working to get paid, you’ll never excel. Even if you manage to do the job well despite not enjoying it, over time, those who are passionate about the work will surpass you, and you’ll end up as a low performer in the long run. It’s essential to naturally enjoy your job to be a high performer. If you’ve found yourself in a job you don’t like, don’t hesitate to look for something you’re passionate about, even if it means accepting a lower salary at first. In the long run, you’ll thrive in your career and earn much more.</p><p>You need to have the necessary skills to perform well in your job. A common issue is when people are promoted to higher positions too early, before they’ve fully developed the required skill set. This often leads to underperformance. If your boss or organization offers you a promotion to a role you’re not yet skilled for, it’s better to wait. Have an honest conversation with your boss, explaining that you’re still working on building the skills needed for the higher role. This shows you’re a thoughtful, future-oriented candidate. While you may miss out on some perks tied to the promotion, in the long run, you’ll benefit from being fully prepared for success.</p><p>To perform well, you need to work both smart and hard. However, working smart is often more important than simply working hard. Working smart means finding the most efficient way to complete a task, considering factors like time, cost, and quality. This requires experience and the ability to critically analyze the work before diving in. That said, don’t underestimate the importance of hard work. There are times when those who put in extra effort outperform those who rely solely on being smart. Sometimes, hard work is essential. In my view, to be a great performer, you should aim to balance working both smart and hard.</p><p>To be a top performer, you need to have a deep understanding of your domain or industry. This way, you can naturally grasp what needs to be done without requiring others to explain every detail. It’s beneficial to pursue industry certifications related to your field, as they’ll help you stay informed. You should also be aware of the latest trends and the direction in which your industry is evolving. To stay ahead, read extensively, attend conferences and events, and get involved with industry associations. This ongoing learning will help you remain competitive and well-prepared.</p><p>To be a good performer, it’s essential to understand what your boss expects from you, as they are the one who ultimately evaluates your performance. This requires ongoing communication with your boss, both formal (e.g., scheduled meetings) and informal (e.g., quick discussions in the corridor). Make sure you’re clear on the ‘definition of done’ for each task, so you fully understand their expectations and can deliver accordingly.</p><p>You need to provide regular progress updates to your boss, in the format and frequency they expect. If you’re facing challenges due to external factors beyond your control, it’s important to take initiative and try to resolve the issue as much as you can. If you believe the delay or impact affects your work, it’s always best to keep your boss informed about any potential setbacks or changes to the timeline.</p><p>You need to manage your time. You should be flexible to work more when need arises as sometime deadlines are not in your control or your bosses control.</p><p>Being a team player is essential, as most jobs require collaboration. To receive help from others, you first need to be someone who helps others. Start by being kind, approachable, and easy to work with, and others will be more likely to return the favor.</p><p>Quality is important not just getting it done someway. You need to understand the level of quality needed for your deliverable, if you have met your deadline but not quality it may be completely useless.</p><p>You need to be someone your boss can rely on. Be available when needed, not just when it’s convenient for you. If you’re not accessible during critical times, even if you’re the best person on the team, your value will be less than someone who may be average but is always dependable and present.</p><p>Improving your soft skills is crucial to becoming a better performer, and communication is key. Effective communication isn’t about talking a lot; it’s about conveying your message clearly and confidently, in a way that’s both gentle and assertive. Equally important is being a good listener — you should be able to absorb all the details, even if the person you’re communicating with isn’t the best at expressing themselves.</p><p>Try to use modern tools. AI is very trendy these days. Unless you know how to use best tools needed in your work, somebody who has that knowledge is going to perform better than you.</p><p>Make sure your performance is visible to your boss, peers, and other stakeholders. Some people do excellent work but remain unnoticed. It’s important to ensure that your contributions are recognized and visible to those who matter.</p><p>Finally, it’s important to understand the values that each organization or team expects from you, as these can vary greatly. For example, one organization may require you to be available by phone even when you’re not in the office. If this doesn’t align with your values, no matter how hard you try, you won’t be able to perform at your best. If you find that an organization’s values don’t align with your personal life or work style, it might be time to look for one that does, as that’s the key to becoming a strong performer.</p><p><strong>How to improve your potential?</strong></p><p>Unlike performance, potential is more difficult to measure, as it is based on perception. It reflects your boss’s view of your ability to excel in higher roles within the organization or team.</p><p>This is crucial if you’re aiming for the next level in your career. Your potential for promotion is demonstrated through your current work. If you don’t actively show your boss that you have the potential to take on higher responsibilities, they may not consider you ready for a promotion.</p><p>The best way to demonstrate your potential is by seeking an extended role. An extended role involves taking on responsibilities that are part of the next level position, allowing you to perform in that role without an official promotion. However, before asking for an extended role, make sure you’re truly ready for it. If you’re not prepared, you risk demonstrating a lack of potential, which could hinder your chances of advancing.</p><p>You need to build the skills required for the next level in your career. These skills include both technical and non-technical aspects. Without enhancing your technical expertise through further study or experience, a promotion is unlikely. As you move up the hierarchy, soft skills and leadership abilities become increasingly important. Simply performing your current role well is not enough to qualify you for a promotion to the next level.</p><p>It’s crucial to thoroughly understand the Job Description (JD) for your next level and identify the differences compared to your current role. Once you’ve identified the gaps, create a clear plan to bridge them and take action. Simply having many years in your current position does not automatically lead to a promotion.</p><p>Having an open discussion with your boss about the skills and capabilities you need to develop for a promotion is essential. Every employee aiming for advancement should have this conversation at least twice a year.</p><p><strong>Should you get promoted?</strong></p><p>Maybe not, at least not within your current organization. You could be a strong performer, but if the next level role doesn’t excite you or align with your interests, it’s worth reconsidering a promotion. For example, if the next role requires frequent travel, and that’s something you don’t enjoy or can’t manage due to your personal circumstances, it might be better to hold off on a promotion until those constraints are resolved.</p><p>Wait a minute, if I do not get promoted how can I get an increment?</p><p>I’ve had team members in roles I led who were paid more than I was. While it’s common for people in higher positions to earn more, that’s not always the case. Your salary is essentially the price for the value you bring, which is influenced by market demand, supply, and factors like your attitude.</p><p>However, if you get promoted into a role you don’t enjoy, you risk losing it eventually. During company restructures or economic downturns, low performers are often the first to be let go.</p><p>Instead of chasing a promotion you’re not passionate about, focus on excelling in your current role. By honing your skills and becoming a star — both technically and in terms of your attitude — any organization will recognize your value and do whatever it takes to keep you. You don’t necessarily need to move up the ladder to find financial success.</p><p>If the next level role doesn’t align with your interests, another way to increase your pay is to look for opportunities in organizations where the job description better matches your preferences. For example, if you’re a Senior Technical Manager and you’re not interested in being promoted to a Vice President role because it involves sales or pre-sales responsibilities, you might find other companies offering VP-level positions that focus purely on technical leadership without the sales component.</p><p>In my view, it’s better to be a high performer in a lower-ranked job than a low performer in a higher-ranked one. If you’re in a role that doesn’t align with your skills or passions, you’ll be under constant pressure to do things you don’t enjoy or aren’t skilled at. That stress can keep you up at night — and good sleep is one of the most important things for your well-being.</p><p>Organizations need everyone to be strong performers, but not everyone needs to have high potential for leadership. As we all know, company hierarchies are shaped like a pyramid — there’s simply no room for everyone to move up, and that’s okay. Success isn’t just about climbing the ladder, but about contributing at your level and excelling in your role.</p><p><strong>Final thought</strong></p><p>You need to be passionate about what you’re doing to truly excel. Without passion, you’ll struggle to perform at your best, and over time, you might even see juniors surpass you. Passion isn’t something you can force — it has to come naturally. When you’re in a role you’re genuinely passionate about, everything else falls into place. You’ll find yourself performing exceptionally well with less effort, because your enthusiasm and drive will fuel your success.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=9f45a07b07ee" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/are-performance-and-potential-the-same-9f45a07b07ee">Are Performance and Potential the same?</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to find a good Internship?]]></title>
            <link>https://medium.com/software-engineering-forum/how-to-find-a-good-internship-c8cae7e35d56?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/c8cae7e35d56</guid>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:19:38 GMT</pubDate>
            <atom:updated>2024-12-07T03:13:03.353Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*0sxc9glus9Tr4uJo.jpeg" /></figure><p>“Can you help my Son/Daughter to find an Internship in IT or Software Development related company?”. This is one of the most common type calls I get from my friends and relatives. A call or two per every week is not something uncommon.</p><p>I remember how concerned I was as a father about internship opportunities for my own kids, so I truly understand the importance of these calls. Having been in their shoes, I’m especially sensitive to this topic. Often, these calls end up with me speaking to the friend or relative’s child, providing detailed advice on how they can find a good internship. I know most people reach out to me hoping for help securing an internship, not for a lengthy lecture on how to find one. Unfortunately, the reality is that all I can offer is advice, not the ability to arrange an internship.</p><p>In fact what I told my own kids on how to find a good internship is what I have written here. Hope it will be helpful to parents to educate their kids or kids who are seeking internships.</p><p>In Sri Lanka, it has reached a point where every parent wants their child to pursue a career in IT and become a software development professional. Private universities now have over 2,000 students in a single IT batch. Both passionate and non-passionate students are enrolling in these degrees, believing that completing them will lead to securing a good internship and eventually landing a job at a reputable software company with a high income.</p><p>Internship is a very important part of a Degree, it gives you the chance to get industry exposure while doing academic studies at University.</p><p>When I did my first internship (which was split into two sessions — one in the 3rd year and another in the 4th year) at a highly reputed software company in 1994, the experience was unfortunately disappointing. The only exposure I got was sitting at a desk facing a wall. They were reluctant to let us access any code or computers. My colleague and I spent the entire three months reading library books we borrowed from the university. While my internship experience was frustrating, some of my peers who interned at smaller companies gained fantastic practical exposure.</p><p>Joining a large, well-known company doesn’t always guarantee the best internship experience. It’s important to do a background check on the company you’re applying to. Within a single company, different sections and teams can offer vastly different levels of exposure and experience. It’s a good idea to ask senior students about their experiences with various companies and teams to get a clearer picture of what you might gain. Don’t dismiss smaller companies or startups — they can often provide better hands-on experience than larger, more reputed organisations.</p><p>One of the best ways to understand what a company expects in terms of technical and non-technical skills is by reviewing their recent job advertisements. You can find these on LinkedIn Jobs, TopJobs, or the company’s own website. Almost all companies now publish their current vacancies through at least one of these platforms. While these Advertisements are typically for permanent positions, they offer valuable insight into the tools, technologies, and domain knowledge the company uses. By building these skills and applying for internships, you’ll be better aligned with the company’s needs. In fact, not only could this increase your chances of securing an internship, but it could also lead to extending your internship into a permanent job if that’s your goal.</p><p>Most companies offer some form of payment during internships. My advice is to focus on the quality of the internship rather than the salary, unless you’re particularly desperate for extra income. The main priority should be gaining valuable experience and skills, not the compensation.</p><p>The key to securing a great internship lies in how well you prepare for it. Start by identifying your top internship choices at least a year in advance. Then, tailor your preparation for each company so that you stand out during the interview. Just like anything else, finding a good internship is a competitive process — those who are better prepared have the upper hand.</p><p>You should create a list of both technical and non-technical skills to master for each company you are targeting. This information can be gathered by talking to senior students and researching the companies online. For example, if you discover that a company you’re interested in uses JavaScript extensively for product development, mastering JavaScript will give you a significant edge in the interview. It’s important to be even more specific in your focus. For instance, if the company uses Angular for Single Page Applications (SPA), you should focus on that specific area to differentiate yourself from your peers and stand out during the interview.</p><p>Most software companies focus on specific domains (e.g., a company may develop banking products), so it’s crucial to gain as much knowledge as possible about that domain or product. During the interview, the panel will be eager to assess how well you can fit into their team and the value you can add. Demonstrating a clear understanding of the domain or product can greatly impress your interviewers. For example, a simple YouTube search on topics like banking can provide more than enough resources to deepen your knowledge. With so much information available online, if you’re not taking the initiative to learn, it’s entirely your responsibility. In today’s world, access to information is no longer a luxury — it’s a necessity.</p><p>To secure a good internship, it’s important to perform well in your education and aim for strong grades. If two candidates come to me for an interview, and one has a high GPA while the other has only just passed, I will definitely give preference to the one with the higher GPA. So, don’t think that simply passing your degree is enough — put in your best effort to achieve a great GPA.</p><p>I remember a time when a politician’s letter, attending a prestigious school, or knowing a powerful relative or friend were common ways to land a job. But those days are behind us, at least in the software development or IT field. Today, people are selected based on merit, not connections. Most companies now have well-defined HR practices, making it impossible to secure an internship through personal relationships. The only way to land a good internship is to excel academically and thoroughly prepare yourself to stand out in interviews.</p><p>Don’t overlook the importance of developing your soft skills; they are just as crucial, if not more, than technical skills. One key soft skill is communication. Remember, communication isn’t just about how fluently you speak; it’s about expressing your thoughts clearly and confidently. You should be able to convey that you are the most valuable candidate for the internship position.</p><p>I can’t stand seeing CVs with spelling mistakes and poor formatting. It makes me wonder — if someone isn’t careful enough to check spelling in MS Word, a simple task, and properly format their CV, how can they be trusted to pay attention to detail during an internship? Your CV is your key to getting an interview. Avoid sending it in MS Word format, as it suggests you don’t know how to save a document as a PDF. A strong CV should impress not only with its content but also with proper grammar, correct spelling, alignment, indentation, and overall formatting. Be sure to check that all hyperlinks in your CV work correctly. At least 10% of the CVs I review have broken or incorrect hyperlinks. When I click to view their LinkedIn profile, I either get someone else’s profile — likely the person they copied the CV from — or the link leads nowhere!</p><p>Make sure you don’t send the same ‘cookie-cutter’ CV to every company you apply to. You need to tailor your CV to each organization to make it more appealing to the senior people reviewing it. I often receive CVs that clearly look like they were made for any job. Remember, your CV shouldn’t be a one-size-fits-all; you need to put in the effort to adjust it to fit the specific internship and company. For example, I’ve seen many Quality Assurance Engineer internship CVs with the title ‘Application for Software Engineer Internship,’ and I immediately stop reading. Some candidates apply for internships at companies that focus 100% on Java, but their CV only mentions .NET. These are basic mistakes that create the impression you’re not paying attention to detail or aren’t even sure where you stand. Don’t expect to get an interview if your approach to preparing your CV is this careless.</p><p>The early bird catches the worm! When your batch mates start applying for internships, your CV becomes just one among hundreds — or even thousands — of others. Start as early as possible. I’ve seen smart students attend internship/job fairs in their senior years and secure positions ahead of others, while many of their peers are still taking it easy.</p><p>Before attending an interview, conduct thorough research about the company and the specific team. Understand what the company does, their products or services, their industry, and their history. Learn about their investors, key senior managers, and when the company was founded. Know where they operate, who their major clients are, and what values, vision, and mission drive the organization. Many candidates can barely recall more than the company name and might manage only a sentence or two about it. Do you really think we would hire someone so uninformed for an internship?</p><p>If you’re planning to apply for Software Engineer internships, make sure your GitHub profile showcases quality code you’ve written. Remember, adding a few pieces of code just a couple of weeks before the interview to ‘prove’ you have a GitHub account will be obvious to the interview panel. Start adding your work at least a year in advance. A GitHub profile with a year or more of consistent, high-quality coding clearly demonstrates your capabilities. And if you include your GitHub link on your CV, be prepared to discuss and explain your code during the interview.</p><p>Make sure your LinkedIn profile is up to date and well-crafted. Your Facebook profile can also serve as an important reference to showcase your character. Interviewers often check these profiles to get a sense of who you are — not just your technical skills, but also whether you’re a good fit socially for the team. It’s important to demonstrate that you not only excel in tech but can also contribute positively to the team dynamic as an intern.</p><p>I often see people listing referees on their CVs, but I don’t find this valuable. Referees are typically people who will say positive things about you, but we never contact them for internship applications. So, don’t waste valuable space on your CV by including referees.</p><p>Avoid creating lengthy CVs; no one reads beyond the first two pages. Ideally, keep your CV to a maximum of two pages. If you can format it well, a one-page CV is even better.</p><p>Don’t include obvious or vague statements like ‘A/L passed.’ We know that you need to pass A/Ls to pursue a degree (unless you’ve completed a Foundation Course). Be specific — mention the stream you followed for your A/Ls and the grades you achieved.</p><p>It’s a good idea to include a professional, well-dressed photograph at the top of your CV. Avoid using casual or funky photos from your social media profiles, as they may not present the best impression.</p><p>Mention all sports and extra curricular activities you have done, those matter a lot.</p><p>If you are applying for a Software Engineer internship try to do as much as <a href="https://leetcode.com/">Leetcode</a> or <a href="https://www.hackerrank.com/">hackerRank</a> questions possible and include those links in the CV.</p><p>Most companies use an IQ test to screen applicants and practicing IQ papers more and more will give you a good chance in scoring well in such tests.</p><p>As you can see, securing a good internship requires a solid plan and a significant investment of time and effort. The earlier you start preparing and put in the work, the better your chances of landing a great internship.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c8cae7e35d56" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/how-to-find-a-good-internship-c8cae7e35d56">How to find a good Internship?</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Computer Science or Computer Engineering?]]></title>
            <link>https://medium.com/software-engineering-forum/computer-science-or-computer-engineering-3b8b8ef2dff1?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/3b8b8ef2dff1</guid>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:19:21 GMT</pubDate>
            <atom:updated>2024-11-24T18:56:13.261Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/640/0*3spRgI4hRwxEZwIf" /></figure><p>This is a common question I’m often asked by young people and by friends and relatives whose children are about to pursue degrees in computing.</p><p>To give some context, I completed my A/Ls in 1989. There was a student one year ahead of me, who had taken the Bio Science stream. His parents were both teachers and worked at a local school. Like most students in the Bio Science stream, his dream was to become a doctor, a path still popular even today. He was one of the brightest students in his cohort, and everyone expected him to get stellar results and secure a place in medicine. However, despite his hard work, he didn’t get into medicine on his first attempt. I remember how devastated he, along with his parents, were. They struggled to face the community’s expectations. He retook the A/Ls the following year, but again, he did not secure a spot in medicine. He even gave it a third try but still couldn’t get in. Finally, with limited options, he settled for a Bio Science degree at the University of Peradeniya.</p><p>Today, he is one of the most prominent professors in his field, highly regarded not only in Sri Lanka but globally.</p><p>So, when it comes to the “Computer Science vs. Computer Engineering” debate, my answer is simple: it doesn’t really matter in the long run. No matter what you choose, if you excel in it, you’ll reach the top; if you don’t, it won’t matter what degree you’ve earned.</p><p>However, from an academic perspective, there are clear distinctions between the two paths, and it’s important to understand them.</p><p><strong>Computer Engineering vs. Computer Science: What’s the Difference?</strong></p><p>As the name suggests, Computer Engineering is focused on preparing you to be an engineer, while Computer Science is more geared towards becoming a researcher or scientist. The Engineering path tends to have a more practical, hands-on focus, whereas the Science path emphasizes theoretical and academic knowledge.</p><p>At the University of Moratuwa, the degree is titled <em>Computer Science and Engineering</em>, which combines aspects of both fields. Some may argue that it tries to cover everything but ends up being a jack-of-all-trades, master of none.</p><p>In contrast, the University of Colombo School of Computing (UCSC) offers a more traditional Computer Science degree, focusing primarily on the scientific and theoretical side of computing.</p><p><strong>Degree Duration: General vs. Honours Degrees</strong></p><p>In Sri Lanka, a Computer Science degree is typically a three-year program, though some universities, like UCSC, allow students to convert it into a four-year honours degree after selection in the third year.</p><p>On the other hand, an Engineering degree is generally a four-year honours program. Each Sri Lankan government university offers either Engineering or Science, but not both. However, private and foreign-affiliated universities tend to offer both.</p><p><strong>Which Path Should You Choose?</strong></p><p>If you’re aiming for a career in research or higher studies, it’s generally recommended to pursue a Computer Science degree. If your goal is to join the industry, an Engineering degree might be a better fit. Historically, Engineering degrees have been more appealing in Sri Lanka, as evidenced by the higher cut-off marks for Engineering faculties compared to Science faculties in government universities. However, each year, a few highly talented students choose to study Computer Science even though they have enough marks for Engineering. These are students who are clear about their ambition to focus on research and pursue a PhD.</p><p><strong>Does It Really Matter?</strong></p><p>While these distinctions may seem important, in reality, they don’t make as much difference as you might think. There are many highly regarded scientists who have earned Engineering degrees, and there are successful engineers who have a Computer Science background.</p><p>So, should you pursue Computer Science or Computer Engineering? In truth, it doesn’t matter all that much anymore. When you compare the course content of both degrees, the differences are minimal. What truly matters is how well you do in your chosen path. Whether you choose Computer Science, Computer Engineering, or another specialization, your success will ultimately come from your dedication, passion, and ability to excel in the field.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3b8b8ef2dff1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/computer-science-or-computer-engineering-3b8b8ef2dff1">Computer Science or Computer Engineering?</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[How to join a Software Development Company as a Fresh Graduate?]]></title>
            <link>https://medium.com/software-engineering-forum/how-to-join-a-software-development-company-as-a-fresh-graduate-5dd0cc661d04?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/5dd0cc661d04</guid>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:19:04 GMT</pubDate>
            <atom:updated>2024-12-11T08:57:34.325Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*_0p9dQoO9lqXC6e1" /></figure><p>This discussion specifically pertains to the recruitment of technical roles in software development. It does not apply to non-technical positions such as marketing, finance, or management.</p><p>Software development companies often engage in “bottom feeding,” which means recruiting fresh graduates or individuals with less than a year of experience. While senior hires are occasionally made, this generally happens when there’s no time to onboard and train juniors. Personally, I prefer hiring junior candidates whenever possible, and here’s why.</p><h3>Why Junior Hires Are Preferred</h3><p>Junior hires come with minimal “baggage.” Every employee, over time, adapts to the culture and environment of their workplace. Unfortunately, in some organisations, the work culture can be messy or politically charged, and employees often have to adjust to fit in. This adjustment can result in a mix of good habits and less desirable traits, which I call “cultural baggage.”</p><p>When this baggage is carried into a new company, it can lead to friction, negativity, and a decrease in productivity. As a manager, a significant portion of my energy can be diverted towards addressing issues caused by these negative influences, rather than focusing on improving software development. This is why I lean towards hiring junior candidates — they are like a blank slate, allowing us to shape them according to the culture we want.</p><p>That said, there are times when hiring senior professionals is necessary, even when there’s time to train juniors. In these cases, it’s typically because the senior candidate comes highly recommended by someone I trust. Even then, I conduct rigorous interviews, both individually and with input from other senior team members.</p><h3>Key Qualities We Look For in Fresh Graduates</h3><p><strong>High IQ</strong><br>Above all, I seek candidates who demonstrate exceptional intelligence. This is why every recruitment process starts with an IQ test. If a candidate has scored 3 A’s in their A/L exams and is ranked within the top 100 nationally or top 20 regionally, I usually bypass the IQ test — A/L exams are some of the toughest in the world, and a strong performance there is a clear indicator of intellectual capability.</p><p><strong>Why is IQ so important?</strong><br>High IQ means the ability to learn quickly, comprehend complex concepts, and make rational decisions — all critical skills in software development.</p><p><strong>Outstanding A/L Results</strong><br>A standout A/L performance demonstrates the ability to learn new and complex material in a short time. It also highlights focus, dedication, and a strong work ethic, all of which are essential in the fast-evolving field of software development. A person who can learn quickly and unlearn outdated knowledge to adapt to new technologies is invaluable.</p><p>Contrary to popular belief, A/Ls are not just about the specific subjects studied — they are proof of a person’s capacity to tackle challenges, especially those in software development, where learning new concepts is an ongoing necessity.</p><p><strong>Technical Knowledge</strong><br>While IQ and A/L results are critical, technical skills also matter. However, I would prioritize a candidate with a high IQ and excellent A/L results over one with strong technical skills but lower IQ. This is because high IQ candidates are quicker learners and can be molded into high performers more rapidly. If a candidate has a blend of high IQ, A/Ls, and technical expertise, that’s the ideal combination.</p><h3>Finding the Right Team Balance</h3><p>One drawback of selecting highly intelligent individuals is that many of them tend to be introverts. While they are excellent at their work, the team dynamic can feel somewhat dull or lacking in energy. For a team to thrive, it’s essential to balance these introverted high-IQ individuals with more extroverted team members who can bring energy, enthusiasm, and a sense of camaraderie to the group. In some cases, I’m willing to compromise slightly on IQ or A/L results to include a few extroverts, as they add significant value to the team culture.</p><h3>Do Low A/Ls Disqualify Candidates?</h3><p>No, not necessarily. While A/L results are a good indicator of a candidate’s abilities, I’ve encountered highly capable individuals who didn’t achieve top marks. For instance, one of the best technical experts I worked with had no remarkable A/L results and no formal degree. Sometimes, brilliant minds simply don’t perform well in the standardized testing system. The challenge lies in identifying these individuals and verifying their abilities.</p><p>To assess candidates without stellar A/Ls or degrees, I give them a practical test — such as learning a new programming language (e.g., Python) and completing a set of coding challenges within a tight deadline. If they can meet the challenge, it’s a clear indicator that they possess the skills and mindset we need.</p><h3>Does the University Matter?</h3><p>Not as much as it once did. Historically, top universities like the University of Moratuwa and University of Colombo School of Computing attracted the best candidates, and there may still be a slight bias due to their high cutoff marks. However, many private universities now produce exceptional graduates, and university reputation is less of a concern as long as the candidate has performed well academically.</p><p>What matters most is not just the university but the individual’s accomplishments — particularly their A/L results and GPA. A candidate with excellent A/L results and a solid university GPA will stand out, even if their university isn’t one of the top-tier institutions.</p><h3>University Degrees and Their Importance</h3><p>University degrees are still important. They ensure that a candidate has learned the foundational knowledge required for a technical role. Reputed universities provide a comprehensive curriculum, and passing a degree with a strong GPA or first-class honors is highly valued. If a candidate has consistently demonstrated excellence in their studies (e.g., appearing on the Dean’s List), it’s a clear signal that they can excel in a professional setting.</p><h3>Foundation Courses vs. A/Ls</h3><p>While foundation courses can accelerate the educational process, they don’t provide the same validation as A/Ls. A/L exams are standardized and serve as a clear benchmark for a candidate’s abilities. If someone has completed a foundation course but lacks A/Ls, I tend to be more skeptical. My personal recommendation is to pursue A/Ls first, as they provide valuable experience in both learning and personal growth. The A/L period is an important time in a young person’s life, and a degree can always be pursued later.</p><h3>Extracurricular Activities and Sports</h3><p>Extracurricular activities are a plus, but they don’t outweigh the importance of academic performance. While I appreciate leadership roles in sports, scouting, cadetting, or other activities, the primary focus remains on IQ, A/L results, and GPA. Ideally, candidates who excel in these areas and also demonstrate strong extracurricular involvement are the best fit.</p><h3>Evaluating Attitude</h3><p>Attitude is key to success, but it’s difficult to measure. During interviews, I ask questions designed to gauge a candidate’s mindset, problem-solving approach, and willingness to learn. While academic qualifications and technical skills are important, a positive attitude and adaptability are often what make someone truly successful in a dynamic environment.</p><h3>Conclusion</h3><p>This is my highly opinionated view on how I recruit for technical positions in software development. Different managers may have different selection criteria, so it’s important to take this perspective with a grain of salt. However, my approach has served me well in building effective teams, and I believe it helps ensure we find candidates who are both capable and adaptable to our work culture.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5dd0cc661d04" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/how-to-join-a-software-development-company-as-a-fresh-graduate-5dd0cc661d04">How to join a Software Development Company as a Fresh Graduate?</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Technology Vs Technojolly]]></title>
            <link>https://medium.com/software-engineering-forum/technology-vs-technojolly-99b523de7402?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/99b523de7402</guid>
            <category><![CDATA[microservices]]></category>
            <category><![CDATA[design-decision]]></category>
            <category><![CDATA[tech-stack]]></category>
            <category><![CDATA[monolithic-architecture]]></category>
            <category><![CDATA[architecture]]></category>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:18:52 GMT</pubDate>
            <atom:updated>2024-11-25T19:08:47.678Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/650/0*MTEyElEluMKD6BQX.jpg" /></figure><p>There is no industry-recognized term called “Technojolly” — perhaps I’ve just coined it.</p><p>Having spent most of my 28-year career in software development-related companies, I’ve worked on a wide variety of software projects with different teams and thinkers. Over the years, I’ve encountered many schools of thought regarding software architecture and technology stacks. Both architecture and technology stack are critical success factors in any software solution.</p><p>One of my earlier projects involved a complex solution that used a J2EE architecture with financial transactions at its core. Hosted on IBM WebSphere Application Server and using IBM MQ for messaging, the project was led by someone with a strong bias toward IBM products. He was a brilliant guy, practical and knowledgeable, but his preference for IBM solutions drove the architecture. At the time, I was more inclined toward open-source frameworks and tools. However, I had little influence over the architecture decisions, as I was just a member of the team.</p><p>We paid a significant amount of money for IBM licenses and support services during the project. In my mind, we could have accomplished the same results using open-source technologies, avoiding costly licensing fees. Later, the team leader migrated to IBM and, I discovered, had selected IBM products specifically to bolster his resume in preparation for his move to the company. This, I realized, was the real reason behind choosing IBM WebSphere and MQ — not based on any rational technical consideration. To me, this represents a perfect example of “Technojolly” — making architecture and technology choices based on personal gain rather than project requirements.</p><p>In another project I led, one of my team members wanted to use JMS for a specific part of the solution. Upon further questioning, I discovered that JMS-based asynchronous messaging wasn’t a good fit for the solution, but the team member was eager to use it simply because he had recently been learning about it. This, too, was a case of Technojolly — the inclusion of a technology just for the sake of it, without consideration for its real value to the solution.</p><p>The “Technojolly” syndrome became especially prevalent during the rise of design patterns. Everyone seemed eager to prove they knew every pattern, often overcomplicating their code with unnecessary patterns that made it harder to maintain. This often resulted in convoluted, difficult-to-manage code.</p><p>A few years ago, I worked on a project that used microservices. While the solution was simple enough that it didn’t necessarily require microservices, it became clear that the true motivation for using this architecture was to showcase the project as a “modern” solution, with the goal of gaining recognition as an innovative architect. In my opinion, the selection of a technology stack or architecture should always be a rational decision based on the actual needs of the project, rather than what’s trendy, personally beneficial, or just “cool.”</p><p>Choosing one architecture over another should be a well-considered decision, weighing the pros and cons of each option. For example, one use case for microservices architecture to shine is, when services need to be independently deployable without affecting the entire system. [There are other benefits of Micro Services not only this] But if your team isn’t deploying services independently, and instead deploys everything together, is the complexity of managing hundreds or even thousands of microservices really worth it? This is like buying a four-wheel-drive vehicle with all the off-road features when your only use is commuting to the office and weekend shopping. Sure, it might be fun and thrilling, but it’s not a rational choice if you’re not actually using those features.</p><p>In the same way, choosing an overly complex software architecture that doesn’t add real value to the organization can end up being a costly burden. The organization is the one that will pay the price for maintaining and enhancing this technology stack for years, or even decades.</p><p>No architecture or technology stack is inherently better than another. While microservices may be the ideal choice for one project, a monolithic architecture might be the best solution for another. If you want modularity without the complexity of a distributed system, a modular-monolith approach may be perfect. In other cases, a simple desktop application might be the right fit.</p><p>It’s the responsibility of senior management — particularly CTOs and VPs of Engineering — to ensure that architects make rational, well-thought-out decisions when it comes to choosing architecture and technology stacks. One way to ensure this is by implementing a design template document that captures all design decisions, trade-offs, and justifications. This document should be reviewed and signed off by both the architect and CTO/VP of Engineering after a thorough evaluation of all alternatives. Such a process helps ensure that architects are making smart, business-aligned decisions, not indulging in “Technojolly.”</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=99b523de7402" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/technology-vs-technojolly-99b523de7402">Technology Vs Technojolly</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Specialised Degree (eg. Data Science) or a generic Computer Science/Engineering Degree]]></title>
            <link>https://medium.com/software-engineering-forum/specialised-degree-eg-data-science-or-a-generic-computer-science-engineering-degree-467a43e3ada7?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/467a43e3ada7</guid>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:18:38 GMT</pubDate>
            <atom:updated>2024-11-24T18:45:03.312Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/768/0*KpmYYsAlvbEaAQAt.png" /></figure><p>It’s becoming increasingly common to see young people pursuing specialized degrees in fields like Data Science, Artificial Intelligence, Cyber Security, and similar areas as their first degree. One question I’m often asked is, “Should we pursue a generic Software Engineering or Computer Science degree, or should we specialize from the start?”</p><p>Both approaches have their pros and cons, and I’d like to share my thoughts on both.</p><p>Not so long ago, specialized first degrees were less common. The traditional route was to earn a general degree first and then specialize later through industry certifications, master’s degrees, or even PhDs. The rationale behind this approach was simple: a strong foundation is crucial before diving into any specialization.</p><p>When I entered the University of Moratuwa in 1991, the first year of the Engineering Faculty was a common year for all students. Specializations like Electrical, Computer, Civil, and Mechanical Engineering didn’t begin until the second year. During that first year, I studied subjects such as Engineering Drawing, Lathe Work, Foundry Work, Carpentry, and even some Civil Construction. It wasn’t until the second year that I began my Computer Engineering subjects, but even then, there were still significant courses related to Electronics and Electrical Engineering. The intention behind this approach was to build well-rounded engineers who had a broad understanding before specializing in one area.</p><p>Years later, as I reflect on my university education, I have mixed feelings about some of those non-IT subjects. For example, when I was building my house, the knowledge I gained in Civil Engineering and Electrical work came in extremely handy. I found myself understanding the technicalities of construction and electrical setups in a way that many others might not. On the other hand, there were subjects like ‘Fields &amp; Measurements’ and ‘Advanced Mathematics’ that, while valuable academically, didn’t really contribute to my daily work or life.</p><p>When interviewing students for internships or job openings, I sometimes find that those with specialized degrees have a narrower knowledge base. They may lack the broad understanding necessary to work effectively in diverse fields, such as Software Development. This is especially true when students have specialized in highly focused areas like Data Science or Cyber Security without adequate exposure to the foundational subjects that surround these specializations. Thankfully, many universities now recognize this and offer well-rounded curricula that combine specialized knowledge with a solid foundation.</p><p>If you are truly passionate about a particular field, such as Data Science, and you’ve thoroughly researched its demand in the job market, pursuing a specialized degree can be a great choice. However, before committing, it’s crucial to assess the job market for that specialization.</p><p>For example, in Sri Lanka, the demand for specialized roles like Data Science and Cyber Security is still relatively limited. However, in other countries, this demand may be much higher. If you plan to stay in Sri Lanka, you may want to consider the limited opportunities available in these fields. On the other hand, if you plan to migrate to a country where these fields are in high demand, a specialized degree could be a great investment.</p><p>If you’re still uncertain about which specialization to pursue, or if you prefer a more generic career in software development, a Software Engineering or Computer Science degree is an excellent choice. You can always specialize later through a Master’s degree or industry certifications, depending on where your interests take you.</p><p>In some countries, like the UK, there are integrated degrees that combine both a bachelor’s and a master’s program. If this option is available, it may be worth considering as it provides a well-rounded foundation while allowing you to specialize at the same time.</p><p>In certain regions, having just a bachelor’s degree may not be enough to land a job, and pursuing a master’s degree is almost a necessity. If that’s the case, it might make sense to start with a general Computer Science or Engineering degree.</p><p>However, if you choose a specialized degree, be aware that you’ll be entering a highly competitive job market, often with expert-level interviews. If your knowledge in the specialization is shallow, you’ll struggle in job hunts, as you’ll be expected to have deep, practical knowledge in your chosen field.</p><p>In conclusion, whether to pursue a specialized or general degree depends on several factors. Both routes can be valuable, but your decision should be based on your career goals, the job market, and the level of expertise you wish to attain in your chosen field.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=467a43e3ada7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/specialised-degree-eg-data-science-or-a-generic-computer-science-engineering-degree-467a43e3ada7">Specialised Degree (eg. Data Science) or a generic Computer Science/Engineering Degree</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Chat GPT aided Developers are worth or not, for a Software Development Company]]></title>
            <link>https://medium.com/software-engineering-forum/chat-gpt-aided-developers-are-worth-or-not-for-a-software-development-company-001daf36b990?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/001daf36b990</guid>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:18:15 GMT</pubDate>
            <atom:updated>2024-11-26T02:33:40.302Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/520/0*McX7XLHqFYGgrgq3" /></figure><p>We had a person nick named ‘Google’ in one of my past workplace. He was mainly into infrastructure/systems type of job at that time. This is the time Altavista (altavista.com was the most prominent search engine before google, died almost and was taken over by Yahoo longtime back) was the main search Engine and Google was picking up.</p><p>We used to call him to get support when we had networking or operating systems related issues. He solved problems by sending details of how to fix the issue, very fast. Almost all his expertise was he knew what to type in google to find how to help us. I called him one day to get some help, he was driving at that time, so he could not find the solution for me, but he gave me the exact worlds I should type in google to find the solution. Actually it worked, I found what I wanted. Now you know why his nick name was ‘Google’.</p><p>Is that a skill? Is that worth?</p><p>You will not get it. Google at it’s early stage was not this great as today. Using google to get most out of it was a skill back then!</p><p>That guy pretty much knew how to search google better than us, could he be the expert in long run? That is exactly what happened to my friend ‘Google’. Later, all of us also mastered using google, and google itself made it’s search engine damn good, so any dumb can find anything, little by little, our ‘Google’ found he was not needed anymore.</p><p>Before him getting fired, our friend ‘Google’ migrated and I am not sure what he is doing now, may be he is a Chat GPT expert now!</p><p>I hope good 80% of my view on Chat GPT can be guessed by now even without reading rest of this article.</p><p>Well, Chat GPT is awesome, I never thought a AI platform will come in this useful state in my life time. The most recent Chat GPT-4o is so cool.</p><p>Like in case of our friend ‘Google’, if you know only how to ask something from Chat GPT as the core skill, I will bet anything, you will be out of job soon, may be others do not know how to use Chat GPT as you do, but they will learn it.</p><p>Let me get bit more deep into this.</p><p>When you started using Chat GPT as a tool in Software Development field, you must have been knowing something about programming. With Chat GPT usage if you become better in yourself (not just better in using Chat GPT) by learning better way to do coding, optimising your code etc. day by day, you will be the person surviving in long run.</p><p>If you get day by day dumber as your brain stop working due getting a code from Chat GPT and pasting it, getting an error, pasting that error to Chat GPT back and so… on till you get it working somehow, or you cannot do any serious work without Chat GPT, you when ChatGPT cannot solve your issue and you have no clue what to do, you are going to perish eventually. It is like you are having somebody next to you who know how to do the job and getting it done by him/her and you not learning how to do it in the future. However if you improve and gets better while using Chat GPT; it that is what I think you should do.</p><p>If you are a Software Developer and getting a image done via Chat GPT is perfectly alright, as it is not your core competency, you anyway normally get it done by your UI Engineer.</p><p>The problem is when you cannot do your core competency without Chat GPT.</p><p>Github Copilot is picking up by storm as well. IntelliJ Idea has decent AI support. So if you have skipped, please learn these AI tools. It can improve you by many folds. However do not let it make you a dumb.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=001daf36b990" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/chat-gpt-aided-developers-are-worth-or-not-for-a-software-development-company-001daf36b990">Chat GPT aided Developers are worth or not, for a Software Development Company</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Products Based Software Company or Project Based Software Company ?]]></title>
            <link>https://medium.com/software-engineering-forum/products-based-software-company-or-project-based-software-company-666f52c37363?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/666f52c37363</guid>
            <category><![CDATA[changing-jobs]]></category>
            <category><![CDATA[risk-management]]></category>
            <category><![CDATA[product-company]]></category>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:17:06 GMT</pubDate>
            <atom:updated>2024-11-24T18:42:18.333Z</atom:updated>
            <content:encoded><![CDATA[<h3>Should I work for Products Based Software Company or Project/Service Based Software Company ?</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*BDh8H3MRZkc8TnI_.png" /></figure><p>In my view, any company involved in software development can broadly be categorized into two types.</p><p>The first type consists of companies that take on a wide range of custom software development projects. The second type focuses on developing software products, selling licenses, or offering Software as a Service (SaaS) if the products are hosted by the company.</p><p>I refer to the first group as <em>Project-Based Companies</em> and the second as <em>Product-Based Companies</em>.</p><p>It’s beneficial to make a decision early in your career about which type of company you prefer to work for. The skills and capabilities you need to develop for each are quite different.</p><p>Let’s begin with <em>Project-Based Companies</em>.</p><p>These companies work on a variety of projects, providing tailored solutions to clients across different industries. They develop custom solutions that meet the specific needs of each client.</p><p>In contrast, <em>Product-Based Companies</em> specialize in a specific domain or industry.</p><p>As a software developer, quality assurance engineer, business analyst, or any other role you may play, your value proposition will vary depending on the type of company.</p><p>The key distinction is that, in a product company, your domain knowledge is highly valued, alongside your technical and non-technical skills. In a project-based company, domain knowledge is less of a factor — your technical and non-technical skill set is what will determine your value.</p><p>In a product company, even if you are the best developer, failing to focus on learning and mastering the company’s domain will limit your value. Domain knowledge is critical, and without it, you won’t be as valuable as you could be.</p><p>In a product company, everyone understands the domain well. As a result, documentation for new features or bug fixes is often minimal, as everyone is already familiar with the details.</p><p>However, in a project-based company, detailed documentation is essential. Whether it’s for a new project, a change request (CR), or a defect, the documentation needs to be comprehensive because the people who will use it (e.g., developers, testers, or new hires) may not be domain experts — they are typically experts in their technical fields.</p><p>If you transition from a project-based company to a product-based company, learning the domain from scratch can be a significant challenge. Many others will already have a deep understanding of the domain, and if you don’t catch up quickly, there’s a high risk of being left behind.</p><p>Similarly, even if you’re moving from one product-based company to another, but the domains are completely different (e.g., transitioning from financial products to telecommunications products), you’ll need to learn the new domain from the ground up. In this case, your previous domain knowledge may not be relevant.</p><p>On the flip side, if you are moving from a product-based company to a project-based company, your domain expertise may not carry much weight. In a project-based company, the focus is typically on technical skills, and unless you have a strong technical and non-technical skill set, you risk not being respected or valued as you were in your previous company.</p><p>If you’re purely a <em>techie</em> who has no interest in learning about specific domains, a product-based company may not be the right fit for you. In a product company, you should expect to dedicate at least 50% of your efforts to learning the domain and keeping up-to-date with industry changes.</p><p>In times of economic downturn or when a company needs to reduce staff, the first people to be let go in a product company are often those who lack domain knowledge. This is because, while it’s easier to hire a skilled software engineer, it’s far more difficult to replace someone with deep domain expertise.</p><p>In my opinion, transitioning between product and project-based companies carries significant risks. Similarly, moving from one product domain to another can also be risky.</p><p>I have seen this mistake happen repeatedly, where professionals fail to recognize the importance of domain expertise and expect to be valued in a new company the same way they were in their previous role. This issue tends to become more pronounced as you become more senior in your career.</p><p>This is why I believe it’s important to make a decision early in your career about the type of company you want to work for and stick with it. If you decide to pursue a career in a product-based company, try to stay within the same domain or segment if you change jobs. If you do decide to switch between the two types of companies, make sure to assess the risks carefully and weigh them against the potential rewards.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=666f52c37363" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/products-based-software-company-or-project-based-software-company-666f52c37363">Products Based Software Company or Project Based Software Company ?</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Is Work From Home (WFH) working for your organisation?]]></title>
            <link>https://medium.com/software-engineering-forum/is-work-from-home-wfh-working-for-your-organisation-366a0d6b0cd7?source=rss----8e57d451e8d8---4</link>
            <guid isPermaLink="false">https://medium.com/p/366a0d6b0cd7</guid>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[asian-culture]]></category>
            <category><![CDATA[wfh]]></category>
            <category><![CDATA[western-culture]]></category>
            <dc:creator><![CDATA[Dasun Perera]]></dc:creator>
            <pubDate>Thu, 12 Dec 2024 15:16:51 GMT</pubDate>
            <atom:updated>2024-11-26T02:32:21.741Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OaPbFA92gu1tw5MKVscbYA.png" /></figure><p>This is a highly controversial topic — at least it was. When COVID began, we were all forced to work from home (WFH). Social media was flooded with articles and statistics about how well WFH worked for people. Not only was it effective, but many claimed it was as productive, if not more so, than working from the office. People saved money and time; companies saved on office space, electricity, and air conditioning. Employees enjoyed more time with their families, better work-life balance, and numerous other benefits.</p><p>So, what’s the situation now? While some still claim WFH works for them, many companies are now insisting employees return to the office. What happened?</p><p>Let me share my thoughts based on my experience in a few organizations.</p><p>At the start of COVID, we had no choice but to stay at home. Travel was restricted, and no one visited our homes. With fewer distractions, we all began WFH in this new context.</p><p>Before COVID, most companies in Asia didn’t allow WFH, while in the Western world, it was common to work in the office for three days a week and WFH for the remaining two.</p><p>At first, WFH was challenging since it wasn’t something we were used to. The infrastructure wasn’t quite ready either. I remember companies adding internet allowances to salaries since many employees were concerned about the cost of internet. Some companies also provided funding for UPS units, extra monitors, and office chairs to make the transition smoother. Despite these challenges, productivity reached levels that were on par with, or even better than, the office environment.</p><p>As COVID began to recede, we resumed normal activities — shopping, family gatherings, and trips that we had missed for years. But with these distractions, many people found WFH less productive. Senior executives and top management were reluctant to admit it, as they, too, had adjusted to their new lifestyles and were enjoying the flexibility of WFH. However, as the bottom line started to suffer, we no longer heard top executives or social media influencers praising WFH.</p><p>Most of the people I worked with were from out of town, and over 80% were young. With WFH, many of them left their boarding accommodations and returned to their villages. This allowed them to save significantly on accommodation, food, and transport. However, when they returned home, they were surrounded by family, friends, and relatives who didn’t always understand the demands of a serious job. Focus became a challenge. While a few managed to create a dedicated, distraction-free workspace, it was hard to maintain focus in a village environment where people constantly came by, neighbors called, or relatives dropped in. This is simply a part of our village culture.</p><p>In contrast, the situation in the Western world was different. Many people were already accustomed to working from home a few days a week before COVID. In Western countries, people live in apartments or houses where the culture is less communal. They often don’t know their neighbors well, and even if they do, there’s less likelihood of being disturbed during work hours.</p><p>For married people, WFH presented a different set of challenges. While the IT sector easily adapted to WFH, other professions struggled. When one partner went to the office while the other worked from home, the person at home often took on more household responsibilities — like taking kids to school, shopping, cooking, and cleaning. Many people realized that they could manage without housemaids or drivers, which they had previously relied on.</p><p>Some companies installed monitoring software on employees’ laptops to track what they were doing while working from home. This software recorded detailed information, like the time spent on tasks, and sent reports to managers. In my opinion, this approach communicates a lack of trust and is far too controlling. Even in the office, managers don’t hover over employees constantly.</p><p>During the post-COVID period, many companies continued to embrace WFH, benefiting from the cost savings associated with office space and utilities. As the economy struggled due to the recession, WFH savings became even more attractive. Meanwhile, executives who had once championed WFH were hesitant to speak out against it.</p><p>A few years post-COVID, we are now facing the realities of WFH. Many companies have reverted to requiring employees to return to the office, though some companies still allow WFH.</p><p>I recently met the founder of one of Silicon Valley’s largest API-based stock trading companies. They have never had an office and continue to operate entirely remotely, even before COVID. How does that work?</p><p>I think the key lies in job contracts and workplace culture. In Asian countries, there is a reluctance to fire employees. The practice of hiring and firing to keep the best talent simply doesn’t work in our culture. We know that if someone is let go, they may not have another job, and families often struggle to survive without a steady income. As a result, people tend to focus on personal matters when WFH, especially if they don’t feel the pressure to perform. For example, if your partner goes to the office while you’re at home, the responsibility for household tasks often falls on the person working from home — whether it’s looking after children or socializing with family, friends, or neighbors. In Western cultures, however, the fear of losing a job is much stronger. If you don’t perform, you’re out. There’s no sympathy, and no one worries about how you or your family will cope. This job security pressure is what makes WFH successful in the Western world. People know that if they don’t deliver, they’ll lose their job.</p><p>In contrast, in Asian culture, we don’t fire people easily. When things aren’t getting done, we often blame the manager, assuming they haven’t done enough to ensure the work is completed. This is why we prefer our employees to be physically present so we can monitor progress and remove obstacles.</p><p>Another issue with WFH is that most work involves teamwork. When the team is together, communication and collaboration are much easier, and work gets done more effectively.</p><p>Additionally, measuring individual productivity can be difficult in a team setting. If the work is individual and less dependent on others, it’s clear when an employee isn’t meeting expectations. However, in a team environment, tracking individual productivity is challenging. Having employees physically present allows us to assess progress more easily and address any issues as they arise.</p><p>Beyond getting the work done, we also noticed that people working from home had less attachment to the company. Many left for other opportunities that offered WFH, even if the salary was only 10% more. The lack of a team culture and the difficulty of training new staff remotely became significant challenges. When working remotely, some employees were not great communicators or lacked the social skills necessary for team dynamics.</p><p>Moonlighting — doing a second job without permission — was also an issue. Once, during a conference call, I heard someone in the background saying, “One kilo of sugar.” I realized that the employee was working in his home shop, selling groceries while on a WFH assignment. On another occasion, a person’s camera accidentally turned on during a serious discussion, and she was hanging laundry in her garden while on the call with a client.</p><p>Even my own child, when doing WFH, attended sprint meetings in her night suit, covering herself with a blanket. She’d wake up just in time for the meeting and then go straight back to sleep!</p><p>Now that we’re back in the office, the WFH dust has settled. Productivity is back to normal. When my company switched to full-time in-office work, we feared we might lose a lot of staff. Out of 400 employees, we lost only two. One was a woman with a young child who had moved back to her village and preferred to find a job that allowed WFH. The other person didn’t explain his reasons for not wanting to come to the office.</p><p>I allow WFH occasionally for specific reasons — like if someone is on leave on Tuesday, and lives far from the office, I let them work from home on Monday. But, overall, I now seriously discourage WFH.</p><p>Personally, I encourage you to go to the office and work, especially if you’re young and starting your career. If you continue WFH, you’ll have fewer opportunities for growth. Being physically present in the office allows you to learn how to face people and work in different conditions — this is far more valuable than the money you save working from home.</p><p>If you’re more experienced, don’t mind detaching from company culture, and aren’t concerned about getting fired, WFH might work well for you. There’s nothing wrong with this approach if it’s a good fit for both you and your company.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=366a0d6b0cd7" width="1" height="1" alt=""><hr><p><a href="https://medium.com/software-engineering-forum/is-work-from-home-wfh-working-for-your-organisation-366a0d6b0cd7">Is Work From Home (WFH) working for your organisation?</a> was originally published in <a href="https://medium.com/software-engineering-forum">Software-Engineering-Forum</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>