Showing posts with label #programmers. Show all posts
Showing posts with label #programmers. Show all posts

Thursday, July 15, 2021

How to Deal With a Biased Boss?

Do you think your boss showers one or more employees in your team with special treatment, while the efforts of others go in vain? If so, understand that the workplace is almost never a level playing field because bosses and employees are all too human. Work place favoritism has probably existed since the dawn of workplaces, and most people find themselves at one end of the spectrum or other at some point in time.

While dealing with a biased boss might seem daunting, you need put your foot down at some stage in order to move forward professionally. Fortunately, finding a solution might be simpler than you think.

Signs of a Biased Boss

You need to be sure if your boss is biased so you may take effective corrective actions. Here are signs that mark bias in a boss.

  • A particular employee is constantly showered with praise for no apparent reason.
  • Others in your team get better career development opportunities.
  • You feel micromanaged all the time.
  • You don’t get feedback.
  • Your request for a raise is rejected without a valid reason.
  • You’re not included in important meetings.
  • You receive criticism even when you do a good job. 

Are You Really a Victim?

Are you sure that your boss is biased or might you have perceived a situation incorrectly? One way to determine if you’re thinking straight is to ask your colleagues if they feel the same way. Pay attention to conversations between your boss and those who you feel receive undue praise. Could it be that the people you who feel are being favored are actually more adept at handling tasks assigned to them? Remember that an incorrect assumption can lead to drastic consequences.

Act Normally

Pretend that you have no inclination about your boss playing favorites. You definitely don’t want your boss to see you in bad light, which is why you need to keep all adverse reactions at bay. While you might not be your boss’ favorite, you don’t want to end up at the bottom of the ladder either. Bear in mind that emotions can cloud your vision. Determine what the favored employee is doing right, because two can play the game.

Know Your Performance Metrics

Seek clarity about the performance metrics that apply on your team. Ask for your key responsibility areas (KRAs) so you can identify the basis of your evaluation. With a clear picture of your targets and expected standards, you know just what you need to do to get your boss’ attention. However, this also requires that you put your best foot forward consistently, and work on improving your skills.

Find a Mentor

If you feel that no matter what you do your boss is just not giving you your due, consider finding a mentor. A mentor can guide you in exploring other possible roles within your organization based on your skill set. In addition, you may also receive guidance surrounding what you need to do to improve your skills and how to get noticed by other leaders in your organization.

Document All That You See and Hear

Once you’re sure that your boss is biased, start documenting all that you might see or hear about him/her, because this is crucial when it comes to establishing a pattern of biased behavior. However, this step requires that you be honest and objective. You might make use of this documentation at a later stage, if higher ups or the HR department enters the picture.

Talk to Your Boss

You might consider bringing your reservations up with your boss directly. However, make sure you are subtle, as opposed to being accusatory. In some cases, highlighting clear data points instead of making generic statements helps bring to the surface some unconscious biases.

Explore Other Options

When all else fails, you might want to look for other opportunities, either within your organization, or elsewhere. Some organizations give employees the ability to make lateral moves to other managers or projects. At this stage, affecting a positive change is basically up to you.

What You Need to Do If You Face Discriminatory Bias

The U.S. Equal Employment Opportunity Commission (EEOC) states that it is illegal to discriminate against employees based on race, religion, color, sex, age (40 or older), national origin, disability, or genetic information. It is also illegal to retaliate against anyone who has complained about discrimination, filed an official complaint about discrimination, or taken part in an employment discrimination lawsuit or investigation.

If you find yourself in any such situation, consider filing a complaint with your organization’s HR department. You might also think about contacting a lawyer and/or the EEOC.

Conclusion

There is no reason for you to go out of your way to please your boss as long as you’re good at your work. What you need to bear in mind, though, is that your boss is simply trying to provide value to his/her boss. Favorites typically help managers look good in front of their bosses, so there’s no real bias there. If you can think of a way to make your boss’ life easier, you might find yourself becoming the next favorite. If things seem beyond your control and the bias is real, reporting it might be your best bet.


Thursday, June 10, 2021

Why self evaluate?

Are you wondering why you need to self-evaluate before your performance review, because no matter how well (or not) you are doing, your boss will have the final word? Do you think your evaluation might hold absolutely no merit? If so, know that the self-evaluation process is typically in place for good reason.

By the time you are done reading this page, you will find out why organizations require their employees to evaluate their own performance, as well as how to go about the process.

The Need for Self-Evaluation

Self-evaluation gives employers means to engage their employees when it comes to evaluating their performance, as well as for formulating career goals. As an employee, it gives you an opportunity to prepare for your appraisal, after taking into account your performance and overall contribution to your team and organization.

Reasons why self-evaluation plays an important role in performance reviews include:

  • You get to reflect on your professional accomplishments and mistakes. 
  • Your manager gets to look at your performance from your point of view – be it in the form of your achievements or the challenges you face.
  • Highlights from your self-evaluation serve as the foundation for your future objectives and goals, and can also be used to develop a suitable self-development plan.
  • You can use the results as a driving force to motivate yourself.
  • Your employer might use it as a basis for a hike in salary, a promotion, or a renewed contract.
  • It helps highlight differences in performance-related expectations between employers and employees.

Feeling Intimidated is Normal

It is common for employees to feel intimated when they have to self-evaluate their performances. Matters can get especially challenging if you feel that your manager might cast aspersions on your ability to self-evaluate.  Some people find it hard to bring objectivity to the table, whereas some others have doubts about the details they need to include.

Bear in mind that your self-evaluation gives your manager a good starting point, and going through the process requires that you have a clear plan.

The Approach to Follow

Begin by making a list of all your responsibilities and duties. Take time to think about your performance since your last performance review, appraisal, or performance development meeting. Aspects that you need to include in your self-evaluation include:

  • All the goals you have accomplished
  • All your failures and mistakes
  • Areas in which you need to improve
  • Future goals

Since the idea behind a self-evaluation is to highlight your accomplishments, it is important that you take pride in your work. However, you need to be specific, rational, honest, and critical in your approach. You also need to shed light on all that you have learnt. Including facts and figures tends to help.

During the performance review, ask your manager for feedback about your performance. If the answer suggests that your performance is not up to the mark, identify what you need to do to improve. Treat the process as a conversation and not an inquisition. 

Conclusion

Self-assessments offer benefits for employers and employees alike.  Employers can use them to find out how their employees feel about their own performance. As an employee, you can use a self-assessment to identify your own successes and shortcomings. It can also serve as effective road-map, helping your career progress in the right direction.

Feel free to ask questions about this blog post by using the comments section. If you found the write-up to be helpful, please share it with others and click on the like button. Read more articles about careers in software by following us now.

 

Tuesday, May 11, 2021

What is an SRE?

Introduction

With the incorporation of software in almost every industry and the huge dependency on programming and computer science, it was just a matter of time before a new discipline was introduced. According to Ben Treynor Sloss, who is Google’s engineering vice president, “A site reliability engineer is a software engineer who is responsible for developing an operations function”. Site reliability engineering (SRE) uses the versatility of software to handle regular IT operations such as server management and other computer operations by establishing reliable software systems. SRE task forces usually utilize and develop software to handle project issues and problems, increase project autonomy and manage the entire project’s process with minimum manual intervention and manpower. Despite being a commonly used term in classifying work teams, the majority of the people working in both software and project management industries are still not fully aware of the underlying concept behind site reliability engineering. This article is an attempt to clarify what does an SRE do, how is an SRE important to business and projects, how are SRE teams different from DevOps and what kind of tools and technologies that an SRE utilize.

What does a site reliability engineer do?

SRE work can be divided into two main tasks. About half the time is spent on developing and programming new features, increasing system autonomy and project scaling. The rest of the time is spent on operations related work including tasks that require personal intervention and on-call duties. So an SRE should have a balanced mix of system administration skills and software programming, automation and engineering. Among the duties of an SRE is the code deployment, configuration and monitoring in addition to responding to emergencies and managing production service capacities.

How important are site reliability engineers?

SRE makes the project management process of large projects easier by developing complicated codes and algorithms that handle most of the regular and daily tasks. The software developed can be expanded to administer a huge spectrum of machinery and equipment within a company. As I mentioned earlier, SRE’s work can be divided into two main sections, standardization and automation. It is the goal of an SRE to improve a system’s reliability and features while automating operations tasks. The unique role of an SRE requires programming skills and operations management experience. SRE teams are particularly important for startups. Due to its small scale and inability to hire large groups of developers at large scale, having SRE teams would be extremely beneficial for the startup. After understanding how important are SRE teams to a company and what kind of work do they handle, we now need to discuss how do SRE teams work within a development team. 

How different are DevOps from site reliability engineers?

Site reliability engineering implements the idea of DevOps at its core. But what are DevOps? DevOps simply denotes development and operations, where developers are responsible for writing codes, which are then passed on to the operations team for installation and support. However, due to the separation between both teams, developers were not responsible for how the software or features would be used, leaving the operations team in a bad position. This led to problems because the goal of the developers is to keep introducing new features for the customers with new pieces of code, whereas the operations teams are seeking a steady system with stable and steady changes. However, by combining both teams and helping them understand each other’s duties and responsibilities, introducing new features will not only be based on developing the code for the feature itself but also on the consequences and fallout this new introduction might lead to. DevOps and site reliability engineering are often confused because of their similarity in many aspects and properties. Both DevOps and SRE seek high quality and fast services delivery as well as life cycle development, by optimizing business value and responsiveness through automation, platform operation enhancement and integrating both development and operations teams. Now, let us see how is SRE different from DevOps. First of all, SRE teams take to their own hands the duty to eliminate communication and workflow issues. SRE teams’ main goal is to achieve site reliability while adding novel ideas and features, whereas DevOps are mainly concerned with efficient development of operation using platforms such as Kubernetes and microservices. Unlike DevOps, SRE teams split their working time between operations and development tasks such as systems scaling and automation implementation, which is a crucial aspect in the site reliability engineer’s role. A key component for SRE teams is to achieve that balance between both operations and development work. 

What kind of technology supports a site reliability engineer?

In order to determine the type and time of features to be launched, SRE teams use Service Level Agreements (SLAs), which are used to determine the necessary system reliability depending on Service Level Indicators (SLIs) such as availabilities, rate of error, requested latency and systems throughput, and Service Level Objectives (SLOs), which are based on specified goal values and budget error. Due to the fact that an integral aspect of SRE’s work is automation, unified software containers usually provide teams with a common development environment facilitating work integration, automation and delivery.

Conclusion

Incorporating site reliability engineers can be handful especially for startups. They can assist developers by solving some of their general issues, hence providing them with more time to handle programming specific issues. They can also improve the capabilities of the tools used by developers to help them become more productive. In addition, the customer will be provided with a product that has high reliability and security. It is important to mention that finding an SRE to join the team is not quite simple due to the fact that they are looking for a person who are able to multitask and handle both operations and software engineering at a high level. It is always a pleasure to answer all your questions and see you in the next one.

**Note: All the attached photos are royalty free and not copyrighted. 

Tuesday, April 27, 2021

Facebook – Solution Engineer vs Software Engineer

**Note: All the attached photos are royalty free and not copyrighted.

Introduction

As we all know, Facebook is one of the largest tech companies in the world in the meantime. It ranks in the fifth place according to brand value compared to other tech companies in 2020 with a whopping 147 Billion Dollars. Facebook Inc. has also acquired multiple tech companies in the last decade such as WhatsApp, Instagram and more. Without a doubt, it is mesmerizing to be part of Facebook, whether as a software engineer, a solution engineer, or at any other position. However, if it is an option that you can choose between a software engineer and a solution engineer, then there are some points that you will have to consider before taking the decision. In this article, I am going to point out the major differences between both roles, and hopefully help you pick the one that is more suitable for your preferences. 

What does a Software Engineer do?

A Software Engineer utilizes his/her knowledge and expertise about computer science to write codes using programming languages, in addition to servers, databases and frameworks that are used to create computer or mobile applications, operating systems … etc.

The software engineer’s responsibilities can vary from one job to another and there are many career paths for a software engineer other than coding jobs. Here are some examples: web developer, mobile developer, test & quality assurance engineer, machine learning engineer, data scientist/engineer and much more. 

What does a Solution Engineer do?

A Solution Engineer is like a job description and not a field of engineering. It also requires a bachelor in software engineering or computer science just like the software engineer. Nonetheless, a Solution Engineering role can be considered the interface between the development team and the client or the customer. The solution engineer also makes use of computer science principles to make sure that every component of the product or the software is running seamlessly as it should be, without any glitches or lags. The solution engineer is not only responsible for the software part of the product; however, he/she is responsible for the integration with the hardware components of the system. Not to forget that another major role of the software engineer is to familiarize the client with the product; that includes operating demo presentations and some technical meetings explaining the product or the system. 

Major differences between both roles

One of the qualifications that should be found in the solution engineering role and not in the software engineer is the fair knowledge of sales. The solution engineer is the one responsible for outlining the client’s needs and delivering it to the development team making sure that the client is satisfied with the outcome solution. As mentioned earlier, the solution engineer is more of a client-facing role while the software engineer is more of a back of house role that is not felt by the customers. 

Responsibilities of a Software Engineer at Facebook

Just similar to any software engineer, they are working on creating new products and systems that run the Facebook Group’s apps and services. The software engineering force at Facebook is divided into multiple teams, which are Products and Services Teams, Infrastructure Teams and the team of Specialists. The first team is focused on utilizing new technologies to create new features and improving the existing ones. The second team works on ensuring the stability and efficiency of the infrastructure of Facebook such as servers, data storage, system resources and more. The final team, which is the team of specialists, usually work on integrating the new technologies with the complete structure of Facebook. 

Responsibilities of a Solution Engineer at Facebook

A solution engineer at Facebook, his/her time is divided 50/50 between two main sorts of tasks. The first one is to code and develop new products and services just like other software engineers. The other sort of tasks is actually a combination of activities such as dealing with support requests, performing adoption of new products to be able to comply with Facebook’s technologies, interacting with clients and partners, doing public speaking or even writing some blogs. 

Conclusion

Assuming that you have the opportunity to choose between the two positions, your choice should be based on multiple factors. The most important one is to choose the role you are more passionate about. You will perform better if you’re enjoying what you are doing. The second factor is the career future. As discussed earlier, the major difference between a software engineer and a solution engineer is how deep you are involved with coding. Software engineers purely write codes, on the other hand, solution engineers are more client facing with some sort of involvement in code writing. It is totally up to you to choose the track you want to take. Specifically, at Facebook, code writing is highly integrated in the tasks of a solution engineer. Accordingly, you will not miss the benefit of being into coding on a regular basis with the addition of gaining experience from clients’ interaction and sales tasks. The third factor is the salary; both roles are paid roughly close figures. The average annual salary of a software engineer is around $92,000. For the solution engineer, the average annual salary is around $100,000. The common qualification that you must have to work at Facebook is to have brilliant developing skills; hundreds of millions or even a billion users are testing your output every month so any mistake will be very costly. 

Wednesday, April 7, 2021

As a backend engineer, will Apple M1 work for me?

 

Introduction

Apple divorcing from Intel was about as expected as the collapse of Kim Kardashian’s marriage to Kanye West. For years we have been watching all the major cell phone manufacturers ditching Qualcomm as fast as you can say “SIM Card” and, as was expected, the PC manufacturers have decided it was their turn. As with people, the only one you can really trust is yourself, and that is the same for massive technological empires. Beyond that, software's, languages, and all other things follow one steady path through this journey of life, and that is, after being taxed disproportionately, at some point they die. x86 has been getting caught up to for years. Intel has slowly become a 21st century case study in the Innovator’s Dilemma as ARM is showing x86 the door with lower power draw and higher performance.  AMD, which for the record still makes x86 chipsets, is eating Intel for breakfast as their chips feature a 7nm die size; something obtained after a summer of ditching the pizza parlor for the running trails. This article could go on and on about how Intel is suffering in the short-term to the new obsession with ARM processors, and quite frankly, everyone else, but this is just to state why Apple has switched from Intel to in-house silicon. Because of the switch, I know many readers like you are wondering if M1 silicon will work for your job as a backend engineer. 

Disclaimer

I must start by disclosing I have worked professionally in a full-stack and embedded engineering role using Macintosh products. Some of you will read this and assume I am a paid fanboy for the team they have assembled in Cupertino, so let me start by saying that I will use my experience with the products to paint an accurate picture of Macintosh and not some glowing review of the greatness of Tim Cook and his cadre of scientists and engineers. I think Windows has many viable options for backend engineers, and at better price points. Linux is a viable option too, and thank the geniuses at the Raspberry Pi foundation for making Linux the OS of my favorite computer. However, this is simply to answer the question, as a backend engineer, will the Apple M1 work for me. 

The Wrong Reasons why you should buy M1

So, in a world of good and bad reasons, I find it best to bring you the worst first. If you choose to sip on silver-tinted Kool-Aid, and ask Siri sage questions such as “how do I fry an egg”, you have probably fallen into the camp of the Mac faithful, and well, we are going to get eviscerated in the comment section, but nobody will get our diamond hands off of our favorite plug and play machines. Sure, we may outspend our Windows brethren, and we may not be as in-touch with the spirits of computer science as our friend on Linux (because you are allowed one, no more, no less), but we are also spending our time actually doing our job rather than installing drivers. This brings me to my first wrong reason:

You Don’t Know Anything Else

You have been bellying up to the bar of Macintosh for long. You actually know how to use homebrew without looking up commands. Debian and Red Hat sound like secret societies (which, to be fair, they kind of are). Bill Gates has not found a way to spy on you yet. Apple is quickly becoming a part of your dependency list. As someone who has worked in Windows, Macintosh, and Linux as a professional, I am saddened if you are stuck with Mac. But I get it. It’s okay, we all have that thing we cling tightly to; the thing which we watch every update to see when it will finally go away. I have woken up with a cold sweat imagining the day they sunset CoolTerm. I think such concerns are far off for Apple, so fret not, you are more than safe hitching your career to that wagon. That being said, if you are making this decision because you couldn’t fathom using any other OS, perhaps this is the time you branch out a little, and I promise, this will go better than that time your mom told you to try out for the soccer team. 

One Word - PowerPC

Tim Cook reassured an audience of non-technologists by saying that Apple would support their Intel-based Macs for “years”. Well, some remember the transition from PowerPC to x86, and let me tell you, those “years of support” looked more like “long enough to let the existing staff learn the new chip” than “we stand behind what we make”. So if you are a backend engineer, and you are going to stay with Macintosh, I would definitely recommend against buying a Mac until you can get your hands on an M1. In fact, including all my good reasons, this bad reason is probably the best reason for you to buy an M1 as a backend engineer if you NEED a Mac. 

It Is the Shiniest Toy

Being on the forefront of any major technological change is always going to be difficult, and that is true whether you are one of those types that lives a step or two beyond stable releases or even just buying the newest cell phone. Early reports show that there are already performance bugs that are present in some of our favorite software's like Chromium, Docker, Edge, and Firefox. These will subside as time goes on, and it is up to worthy pioneers to blaze a trail. Then again, do not rush to the frontier if you are doing it for the cowboy hat. Beyond that, as a Mac buyer for years, I know that you can save considerably when you wait for the first refurbs to come back. 

The Right Reasons why you should buy M1 as a backend engineer

The Battery and The Fan

ARM used to be reserved for micro-controllers, cellphones, and other things which could afford to slow down a little bit in the name of consuming less power. Well, I for one am glad to see x86’s skinny cousin getting his time in the gym, and coming back to school this fall as a lean mean fighting machine. Initial reviews say that the new M1 silicon is a beast when it comes to battery life, and you are going to need that for when you are actually going places again and not firmly affixed to wherever your Mac charger is plugged in. I have heard reports of eight hours of active development with no need for plugging in, and that is frankly impressive. A quieter fan is a welcome sound to my ears. As a software engineer, I have enough people that whine at me over the tasks I ask them to perform, my computer doesn’t need to as well. 

SSD

On the Mac, a lightning fast SSD is essential to executing database queries and subsequently file accesses quickly. Whether full-stack, backend, frontend, business-end or the end, you are going to find that a fast SSD is going to make you faster, and therefore better at your job, and happier with your productivity. The write speed between the previous version of the MacBook Air and the M1 has gone from 1007MB/s to 2190MB/s. Color the computer engineer in me impressed, and you can cash in those performance increases with a marked improvement in what you get done during the workday.

GPU and RAM

I know this affects the front-end engineers more, but the GPU is becoming ever so important in the world of block chains as well. And everyone always wants more RAM, I mean, you might be using this to game after work, and that is important too. The new M1 architecture has less RAM than the Intel versions of the computer, however, the new integrated architecture means a lot more bang for your buck with the RAM that you do have. For example, the 8GB and 16GB Mac’s with M1 have reported very little difference in performance, so it is debatable if the RAM difference is significant. That being said, some of the Intel offerings by Mac do currently have 64GB of RAM, so if that is of dire urgency, by all means. Then again, iPhone users with 4GB of RAM are getting performance numbers on par with Android devices with over 8GB, so it may just be a matter of time for these laptops with less memory to catch up, if they have not already. 

CPU

I am going to just leave these scores from Cinebench and GeekBench here: 


M1

Intel i7 1185G7

Single Core Cinebench

1516

1548

Multi-Core Cinebench

7698

6263

Single-Core Geekbench

1778

1518

Multi-Core Geekbench

7518

6097

Considering that the Intel offering listed is the current industry leader, and that the M1 won in all categories except the single-core test by Cinebench, you could at least say that the M1 was a worthy competitor. And you would be right. Consider the fact that the fans never turned on for the M1 tests due to the lower power consumption of the ARM chips, and I will leave it to you to figure out who is leaving who in the dust. 

The Reasons why you should NOT buy M1 as a backend engineer

GPU and Graphics

You can not have an external GPU, and are limited to one external monitor. I don’t know about you, but following the rule of 5 (every five years of development experience can and must be cashed in for another monitor in your dev environment), this is simply not allowed. For that matter, Minecraft is going to run horribly without the external Apple eGPU, so anyone who wants to game on this machine after work, good luck. I have heard the GPU is on par with competitors outside of these limitations, but this is listed first, because this is of dire importance to anyone envisioning impressing their coworkers at the after-hours LAN party. Without the external GPU, who knows, maybe you won’t even be invited. 

Dual-Boot

As I said, some professionals need this to work with multiple OS’s, and as a backend engineer, that may be the case. You must remember that there is less RAM on this laptop and not all VM’s are ready to use the integrated memory efficiently… You may find yourself working with 8 total gigs of RAM on a Windows machine and although going back to 2014 to avoid COVID is alluring, I am very much a fan of the increased processing power the past six years have brought us technologically. 

IDE’s and other software

If you use XCode, and nothing else, skip this section. You already are optimized, you don’t have to consider this at all. If you don’t, well, at best your favorite apps will perform at the same level of performance they have been. Rosetta2 may be bridging the gap, and some like VS Code are announcing a plan to get with the times, but like I said earlier, being the first means you’re usually paying a larger price than the premium of being the first to have something. JetBrains and Eclipse have also announced plans to make adaptations for the Mac silicon, but these things take time. For that matter, consider that some of your favorite tools that are not already optimized are going to need to be, and not all of them have the backing that products like Visual Studio do. 

You are happy with your computer

If you are not currently a Mac user, you are probably in the camp that should wait for the pioneers to figure M1 out, and that includes all the software out there that is going to need to eventually break out of Rosetta2. If you have a Mac that can extend you another couple years, well, you will see the price of M1 and won’t be caught bagholding when inevitably the Intel support falls away. It is exciting to be on the cutting edge, but sometimes you get cut and it hurts. 

The Answer

As a backend engineer, you are more than likely going to be just fine with the M1 silicon in the long-run. You are going to be caught in the awkward growing pains of Apple’s new hardware, as you watch your instances of Windows slow down, and you run into problems with some of your favorite applications like has been reported with Docker as of the time of this article. The graphics limitations could be a concern, but if you are all work, no play, and you don’t even know how to pronounce Adobe, you are probably fine working with the graphics card that ships with that. However, also consider that blockchains and scientific computing are intensive on the graphics card as well, so you are not only going to be limited in how many frames you can mine Redstone at. I personally love Mac and do full-stack development with it, and I am waiting for refurbs and the software ecosystem to catch up, but for those of you that NEED to be on the cutting edge, I think this is going to be a very solid machine. Now excuse me while I ssh into my Pi from my MacBook Pro and play Pong. 

Written By: Grant Udstrand, writer for copperlunatic.com

Wednesday, January 20, 2021

My manager does not let me take up more responsibility

A number of engineers and coders fail to get more roles or responsibilities from their managers despite having years of experience, being good at their jobs, and being important team members. Fortunately, following a few simple measures might work in their benefit.
Further down this page, you will get to identify the common problems that employees tend to face in this situation, as well as whet you can do to work your way around.
If you wait for things to get better without taking proactive actions, you might find yourself in a state of stagnation, getting out of which may become a challenge at a later stage.

Speak With Your Manager

People who complain about not getting enough responsibilities or not getting assigned more roles by their managers have typically already made some efforts on their own. These can include asking to working on a new project, mentoring an intern, or interviewing possible new hires.
If you have asked your manager for more to do, there is a good chance you have been told that you need to make more contributions and exercise patience.
At this stage, ask your manager what he or she thinks you need to do to move to next level of responsibility. Try to get specific and actionable feedback. After all, who better to tell you what your manager expects than your manager?

Identify What’s Holding You Back

You might be in your current situation because you overestimate your contribution, because your manager favors other team members, or even because your manager dislikes you.
If you have overestimated your contribution, you need to keep putting your best foot forward and delivering consistently.
If you think you are not in your manger’s good books, you might be fighting a tough battle. In this case, you can think about fixing any apparent problem, or leaving the team/organization. It is important that you do not demand too much because it might worsen the situation. On the other hand, you might get desired results by doing more for the organization, the team, and your manager.
If you find yourself in a situation where your manager does not meet your advocacy requirements, let go off your expectations. Then, work on finding another advocate. This might come in the form of a direct supervisor, a manager from another department, or even a mentor from outside your organization.

Identify Possible Roles

When you talk with your manager about taking up more roles, you need to present solutions instead of highlighting problems. You need to be clear about what roles you would like to take on, because asking for more responsibility without offering suggestions makes your appeal rather ambiguous.
For instance, do you want to develop a new product, do you want to lead a project, do you want to partake in an existing project, or do you wish to manage others? Try to identify overwhelmed teams or bottlenecks that typically slow processes down, and then suggest how you can address them effectively.
When identifying opportunities, your focus should be on ones that benefit your business as well as clients. Then, you need to articulate how your new responsibilities or role can help deliver positive results.

Take Ownership and Provide Updates

Once you evaluate your own performance, determine if you have been scraping by or have been exceeding your goals. If you have ideas about how you can improve a process or a product, bring them up in team meetings. Consider summarizing your ideas and sending them via email, while copying the same to different stakeholders.

As and when you get to take on any new roles or responsibilities, make sure you provide timely updates about your progress. Moving forward, ask your manager if you are on the right track.

Conclusion

Know that how your manager feels about you or your work today is subjective, and can change with time. So, a no today might change to a yes tomorrow. Timing may play a role too, because your manager might simply be too swamped with work at this time. If push ends up coming to shove, start building your network inside and outside your organization. This way, you will have leads to openings when the time arrives.
If you have questions about this blog post, please ask by using the corresponding comments section. If you found it to be beneficial, please share it with others. To access more useful content related to careers in software, follow us now.

Wednesday, January 13, 2021

Is there any point of a PMP certification?

What is PMP?

PMP is an abbreviation for Project Management Professional. It is a professional certificate that is awarded to certain individuals who pass the Project Management Body of Knowledge exam. The certificate is awarded by the Project Management Institute PMI, which is located in the United States of America and is recognized internationally. There are over one million PMP certified and active individuals around the globe. It is awarded to individuals who demonstrate skill, knowledge, experience and competency that are required for the project manager to manage various projects and lead teams from different backgrounds to achieve the project's goals. PMP gains its importance for being imperative and essential in almost every industry. The demand for PMP certificate varies from one industry to another. The demand comes from the need to have individuals who are able to handle system reorganizations, develop strategic plans, manage outcomes, handle issues and ensure system effectiveness. Being recognized globally, the PMP certification is considered an unbiased endorsement of the individual’s project management experience and knowledge.

Skills tested in a PMP exam

The project management professional exam tests five different skills for the project manager. The first skill tested is the individual’s ability to understand the project goal and problems. This tests the individual’s ability to identify the key issues in the project and clearly be able to have an idea about the end project result. Another skill is the ability to plan the project. This checks whether the candidate has the ability to create a long-term plan that would be followed throughout the entire project, unless there are changes or unexpected variables that might be introduced later on in the project resulting in plan changes and adjustments. Again, to be able to develop a successful plan, the candidates need to show an understanding of the project’s goals and key elements. A third skill is the ability to run and execute the project according to the developed plan. This tests the candidate’s team management and leadership skills represented by distributing and assigning tasks to the right people according to a set period of time. This skill is considered a crucial skill in the PMP exam. The fourth main skill tested is the candidate’s ability to manage, monitor and control the project. The project management professional should be able to handle delays, monitor tasks and conduct adjustments accordingly. The candidate should be able to notice and identify issues that the project might run into and tackle them. Finally, the candidate is tested for his project closure skills. This tests his ability to meet goals and deliver the project according to the assigned time frame.

What is the main role of a Developer?

A developer is the person who works in software development. Developers are responsible for designing the software and identifying the main goals of the software that is yet to be created. They are also responsible for creating, developing and testing the software to meet the design requirements. The final step involves maintaining and adding features to the developed software. As you might have noticed, the developer’s work is similar to that of a project manager. Developers can develop software to different companies for different purposes, so they are not limited to computer manufacturing companies, but they can rather work for different companies involving different industries. This is again similar to a project manager working on different trades in one large project. A developer is responsible for understanding the problem to be solved, designing a solution, developing and programming the solution, testing the developed solution and finally releasing the software to the client.

What Project managers do?

As previously mentioned, a successful manager is an individual who is capable of achieving a successful project initiation, planning, implementation, monitoring, development and closure. A successful project manager should be able to identify key project elements, detect unstated assumptions, lessen uncertainties and risks, manage the project process and finally deliver the project. The PM should listen to feedback from the project’s team members and act accordingly. A crucial role that is played by the project manager – independent of the working environment or industry – is making critical decisions. The project manager is the one responsible for the project’s success. Accordingly, key decisions taken by the project manager are crucial to control risks, handle issues and minimize uncertainty.

Is PMP certification enough to switch from being a developer to project manager?

The short answer is not much. It is clear that there are obvious differences between being a developer and being a project manager. Despite the similarities in some of the job duties, a developer is yet to possess some of the skills that a project manager needs to lead a team, plan, implement and manage a project throughout the whole project phase. Obtaining a PMP certificate is not enough to do the career shift from being a developer to being a project manager. The certificate is used to test the way you are going to handle different situations that a project manager might face. In most cases, a good project manager develops his skills from previous experiences. He might rely on the concepts that he learned during his studies towards PMP certification, but still, it is not simple to mimic real life situations and complexities on paper. In addition, there is no theoretical way that you can use to run a project, but rather it comes with lots of practice, job shadowing and experience. Being a developer with a PMP certification is not enough to convince any company that you are capable of running a project and leading a team of different backgrounds and skills that are much broader. According to some of the people who receive job applications for project management position, possessing a PMP certificate makes no to little difference and does not give the candidate the edge he/she might have in mind.

Wednesday, December 23, 2020

Is engineering PM an over-saturated role ?

Do you think that the role of a project manager (PM) is overrated? Do you feel it is hyped, oversaturated, and maybe, even elitist? If so, you probably need a reality check. The competition that one has to deal with to become a PM, after all, is often worth the effort.

In this post, you will find out why the role of a PM is relevant, especially in today’s times.

Start by understanding that many seemingly great products would not have found the success they have if not for competent PMs. However, the role is such that the number of PM openings is typically lower when compared to completely engineering or technical roles.

What Does a Project Manager Do?


Businesses that require PMs do so with good reason. While they have engineers and developers to focus on software and mechanical specifics of getting products going, PMs play a vital role in understanding customer requirements and communicating with all stakeholders.


In a nutshell, a PM needs to understand customer requirements, identify tools or processes that can be of use, and oversee the creation, execution, and delivery of any project.


A good PM would also be adept at:
  • Identifying and resolving issues
  • Budgeting
  • Time management and approval
  • Team-building


One of the biggest challenges that PMs face is influencing people without exercising an air of authority. This can be particularly difficult when they have to deal with people who don’t report to them directly.

Project Managers vs. Product Managers


While both are PMs in their own right, and both come from predominantly engineering backgrounds, they have different responsibilities.


Project managers need to ensure that tasks are assigned to the right people, while also making sure of timely delivery. Their focus is on driving the development of products. A project manager would typically:
  • Oversee the workload of multiple engineers
  • Have at least basic technical knowledge about products being developed
  • Solve management and scheduling problems
  • Coach and offer advice
  • Resolve disputes
A technical product manager, on the other hand, is responsible for making tech-based decisions after considering different metrics, as well as for overseeing the execution of development plans.

The "Worth" of a Project Manager

As a project manager, you should have the required knowledge about your realm, failing which you don’t stand a very good chance of earning your peers’ respect. Being able to influence without authority is also important.


You should be able to get through roadblocks faced by your engineers and bring plans to fruition. For instance, if your engineers are waiting for information from a product owner who is slow to respond, you should be able to deliver in a timely manner.


Consider this example – you are responsible for handling a team that is working on a completely new product. You need to start by determining if it is a good idea. Then, you need to look into existing competition, as well as address aspects related to costs and revenue. You also need to collaborate with the marketing team so it can help you get your product off the ground. To do all this effectively, you need more than just engineering skills.

As you can see, the role of a project manager is rather wide-ranging, and calls for high levels of soft skills as well as business skills.

Conclusion

Getting back to whether the role of PMs has become oversaturated, the answer remains an obvious no. However, what should go without saying is that not having a PM at all is better than having a bad one. A good PM should not only have technical knowhow and analytical skills, but should also be able to distribute accountability and ownership of key aspects to the core team.

If you can manage to double up as a project and product manager, there’s nothing like it, because you’re then responsible for executing your own suggestions.

Wednesday, December 16, 2020

What Happens to Your Software Career When You Turn 50?

Have you reached that stage in your software career where you are wondering how relevant you might remain once you turn 50? Are you worried about finding a job that matches your existing skill set? If so, know that there is plenty of light at the end of this tunnel.
This blog post addresses all the aspects that need your attention in keeping your software career going way beyond your 50s, should you so desire.
You need to start by understanding that just your years of experience might not serve the purpose. This is because whiling away in your existing job without taking on new challenges, while simply waiting for the years to pile, will do little good for your prospects in the future. Therefore, what happens to your software career in your 50s and later is basically up to you.

What Does the Existing Scenario Look Like?

There are several programmers over 50 years of age who have managed to do rather well for themselves, be it in the form of responsibilities or financial growth. Some have found great roles with leading names such as Google and Amazon, some are playing important roles at startups, and some others have found success as independent consultants.
Names such as Jon Skeet, Linus Torvalds, Jeff Dean, John Cormack, and Doug Cutting have gone on to show that age is just a number when it comes to keeping a career in software going great guns. It is also interesting to note that not many end up going toward management.

What You Need to Do

If you are looking at continual growth in your software career, it is important that you remain ambitious and continue improving. Adding to your skill set along the way is crucial. For instance, if you have been programming for two or more decades, it is fair to assume that you have moved from COBOL to VB4 to Oracle to Java.
Going forward, the progression needs to continue. You may also need to reinvent yourself at some stage. Might you, for instance, consider a switch to AI- or IoT-related technology?
With a strong foundation of coding and database architecture in place, learning new technologies is fairly straightforward and takes little time. This is because you start seeing patterns that are repeated and reapplied in different domains.
Depending on how good you are and the value you bring to the table, you can end up being mediocre, while still retaining a good job, or become highly sought after by market leaders.

Roles You Might Get to Play

Depending on your skill set and areas of interest, you may consider taking up different roles in the later stages of your career.
Engineers can look for roles in technical management.
Coders can take up leadership roles related to product strategies.
You may work as a distinguished engineer, who is nothing short of an influencers’ influencer.
You can become a technology advisor for a large company that is working its way around the legalities of software development and use.
You can voice your opinion on controversial software-related topics such as the use of AI, cybersecurity, dark patterns, and software ethics.


What You Should Not Do

Several people try to rush their careers in a hurry to become product or people managers. This is usually with the aim of wanting to stop coding or getting a hike in salary. Most experts opine that getting an initial thrust in a software career can make you replaceable not far down the line. Besides, if you don’t pay attention to your technical skill set, and also indulge in office politics, you stand the risk of someone younger coming in and taking on your role more effectively.
The bottom line is that focusing on the technical side while continually upgrading your knowledge and skill set is bound to hold you in good stead no matter whether you are 50 or older. As long as you manage to stay relevant and have the fire in your belly going, there is no stopping you from shining in your software career even as the years go by.
If you have questions related to this write-up, please ask by using the comments section. If you’ve found this post to be helpful, please hit the like button. If you’re looking for more great content related to careers in software, follow us now.

Tuesday, December 8, 2020

No interview calls? Your resume is probably not getting past any SWE recruiter.

Several SWEs experience difficulty in getting interview calls for software engineering jobs. Wondering what they might be doing wrong and what they can do to increase their chances follows. If you find yourself in the same boat, going through this post in its entirety will give you a fair indication of what you need to do to land an interview call that can change it all.

What have you been doing wrong ?

Start by determining what you’ve been doing wrong so far. Answering these questions will help.

  • Have you been using the same resume to apply for all the jobs you come across?
  • Have you been over selling yourself?
  • Is your job search limited to a few resources?

If your answers to these questions are in the affirmative, getting that interview call you crave might continue to remain a pipe dream. Fortunately, taking a few relatively simple measures can set you on the right track.

Get your resume in order

The first filter your resume needs to cross is that of a recruiter. Here’s what you need to do to get past this roadblock.

  • Don’t add summary and objective sections because most recruiters tend to skip these.
  • Keep your resume to one page, unless your experience stretches to beyond two decades.
  • Your resume doesn’t need you complete address – the city and state are enough.
  • If you need to email your resume, send it as a PDF and not a Word file, because the latter can lose its formatting on other machines.
  • Include genuine interests because these can help recruiters connect with possible interviewees.
  • Read through your resume in 10 to 15 seconds, and identify key take away points. That’s typically how long recruiters take for initial screenings.
  • Get someone from within the industry to review your resume.

Try to get referrals

Referrals give job aspirants easy means to land interview calls. This is typically a win-win situation because, from a recruiter’s point of view, a referral is nothing short of gold.

If you have former colleagues who work with companies that interest you, ask them for referrals. However, don’t give them your resume straightaway. Mention that you’re interested in what the company might have to offer and give them your contact details along with a link to your LinkedIn profile.

Don’t hesitate to ask for referrals from anyone you feel might be able to help. These can include friends, relatives, and even acquaintances. Using platforms such as Teamblind and Reddit might prove to be beneficial as well. When asking for referrals, remember that you need to be polite, not overbearing.

Quantify your work

Try to quantify your experience. For example, instead of saying, “Maintained a crucial piece of internal marketing tool meant for corporate users”, go with something like, “Maintained a 5,000 line code, fixed 300 bugs, and delivered 50 change requests for a marketing tool deployed by around 200 users over a six-month period”.

Highlight the work experience they need

As clichéd as this might sound, getting the work experience right is crucial. Adding volumes about mundane details serves little to no purpose. Seasoned recruiters will not attempt to find what they need in your sea of fluff. Neither do they have the time, nor do they care.

While your resume needs to reflect what you have worked on in the past, it’s important that you read job postings carefully, and use the core words you find there in your own resume.

For example, if a job requires five years work experience in AngularJS framework, do not assume that a recruiter will get the required information from your brief mention of, “10 years experience in JavaScript frameworks”. Highlight and underline what they are looking for, while using just the right jargon. Do away with, or provide little focus on, aspects that don’t matter to a recruiter.

Do not lie about your work experience. Remember that the verbiage you use in this section speaks a lot about your existing and future potential as a candidate. Trained eyes tend to know just what to watch out for when it comes to this aspect.

Accept it, your resume may not be the best

Bear in mind that the companies you have worked for in the past matter, because recruiters view FAANG, unicorn companies, and regular bodyshop IT consulting companies differently. Be comfortable in knowing that there are other candidates who might appear more appealing on paper, and that your resume is probably at the bottom of the pile. Set your expectations accordingly. It’s best not to have a dream company in mind.

Your visa status may be, unfortunately a factor

If you’re in the U.S. on a work visa, remember that many companies view the process of getting a visa transferred as cumbersome. If you’re here on a student visa, the company you wish to join would have to apply for a work visa on your behalf.

If you have declared that you need visa support, probable employers may choose to ignore your resume. There is nothing much you can do about this, especially if they do not disclose their preferences ahead of time.

Have you tried adding a cover letter?

Most online application methods give you the ability to add an optional document in the form of a cover letter. Use this opportunity to highlight how your work experience will benefit the organization in question. Mention important points that don’t find room in your resume.

A farfetched yet effective idea would be to write a critique about something that is well known, or even about the organization’s website, tool, or process - while offering suggestions for improvement. For example, if you’re applying for the position of a frontend engineer at food delivery startup, you may provide ideas about how to improve UI experience without the need for extensive redesigning.

Look for openings through different platforms

Several recruiters use LinkedIn to find probable candidates. When updating your LinkedIn profile, follow the mantra of “Less is More”. For instance, you don’t need to add details about all the projects you’ve worked on, or the teams you manage.

  • If your career has progressed well, make sure you add your job titles.
  • Change your profile’s settings to reflect that you’re open to new opportunities.
  • Add all relevant skills that you might have.

Check postings on Hacker News’ Who is Hiring. These are updated each month. In several cases, hiring managers add these posts, so you get the ability to bypass Human Resources. Attending hackathons and meet ups might also be fruitful.

While the going might seem tough at the beginning of your search for a new job, you can make the process easier by paying attention to the aspects mentioned herein. Getting through an interview, then, becomes your next challenge. 

If you have any questions about this blog post, please feel free to ask by leaving a comment. If you’ve found the content to be helpful, please share it with others who you feel might also benefit. Follow us for more relevant content that might help you find your dream job.

Wednesday, December 2, 2020

Feeling lost at your programming job ? You are not alone.

Introduction

Maybe you are let to believe that you are either not doing so well in your programming career or want to excel beyond your colleagues in the market or even have no purpose in your job and want to be motivated. In this article I will be offering some help on that.

First of all, you have to assess the situation, you can be unmotivated by your manager, or you can be falling behind your co-workers and need extra effort to cope with them, or maybe you are not feeling challenged in your work … and so on and so forth. After assessing the situation, it is time to take an action that suites you personally. Remember, there can be more than one solution to any given problem … it differs from one person to another. Let me in the following paragraphs propose some possible solutions to the scenarios I mentioned earlier. 

Scenario #1 to be unmotivated by your manager

We all know how positively or negatively a manager can influence the employees without even noticing. The most important thing is to never let anyone affect your self-confidence or make you question your capabilities. 

In programming obviously, you can write tens or even hundreds of codes to do the same task. It doesn’t mean that you were wrong and your manager was right if you didn’t deliver the results your manager wanted. You can solve that by having 1:1 conversation with your manager explaining how you feel. Maybe you need training on something. Maybe you are burned out solving issues that are of lesser priority and loosing focus on the bigger tasks. These are non-technical management things to focus on. If that doesn’t help, find a senior team member or a mentor to seek advice from. Or raise the issue in your workplace to a higher level.

Scenario #2 falling behind your co-workers in terms of performance

Let it be clear that it is not always a good idea to compare yourself with others because everyone has his own circumstances. However, we are living in a very competitive world that will create comparisons out of nowhere especially in a tech/programming job.

It is possible that you are not actually 100% sure of your interest in your current job. Maybe you as a web developer, find robotics interesting or as an embedded systems engineer is fascinated by web development. Put aside some hours per week to try them out, without forming close opinions. I have been there myself, but I had taught myself how to experiment before settling with what I want to do. It is possible that the new thing you picked up might become stagnant in 5 years, but then you already know how to repeat the cycle. You are older and wiser by now.

You are comparing yourself with much experienced friends. Ambition is a great thing but a negative feedback along the way is demoralizing. Know how to get positive feedback and keep yourself motivated along the way by gaining some perspective by doing freelancing or contributing to open source in your spare time. I’m sure most of the known names in programming have been there at the beginning of their career. You don’t have to be perfect to those, all you need to start is to be able to do things others can’t. One step after another you will improve faster than you can imagine. That way you can also dedicate some time in your week to learn and practice new things. You can do that by taking online courses or attending group workshops. Create dummy projects and try new techniques and tools. Remember, practicing a trade helps you sharpen your skills and a no-pressure hobby project is a great option to achieve that.

Scenario #3 not feeling challenged in your work. 

It is easy to feel bored if you keep doing the same tasks over and over … day after day. You are pretty good at what you do and it doesn’t push your intellectual limits any more – like production support job in a pretty stable environment where the most stressful moments of your job is handhold users to get their password reset. There is no development in repeating your job duties with little to no changes every single day. You can solve that by thinking outside the box, as cliché as it may seem, but this strategy actually works. Let the computer do the boring stuff by automating manual processes as much as you can in your code. By that, you will have time to work on your self-development. Re-visit old tools and try to improve them or even create new tools that will help you and others afterwards. That may provide some edge to eventually grow out of the grunt and maybe offer a distinction in the eyes of your manager. If a promotion doesn’t pan out as a result, you now have something to talk about in your resume for your next job.

Bonus Tips

At the end let me give you some bonus tips. The first and most important tip is to get out of your comfort zone. Keep challenging yourself to do things you never thought you could do. For example, involve yourself in a project written in a new programming language that you are not expert in yet. “Magic happens outside your comfort zone” I believe that if you adopt this saying in your life, you will really witness the magic. The second tip is to review your progress on a monthly basis. Make sure that you are heading towards the right direction, re-visit your goals and reflect on your outcomes. 

Conclusion

Finally, be sure that to set reasonable goals with achievable steps and don’t overload yourself with a lot of things at the same time. Small consistent steps on the right track will lead you to a better future and you all know the famous quote “The journey of a thousand miles begins with one step.”
























Comic time: Professional SCRUM hogger