Engineering Management – CoderPad https://coderpad.io Online IDE for Technical Interviews Thu, 25 Jul 2024 14:00:48 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://coderpad.io/wp-content/uploads/2024/01/cropped-coderpad-favicon-32x32.png Engineering Management – CoderPad https://coderpad.io 32 32 How To Use CoderPad To Interview Software Architects https://coderpad.io/blog/interviewing/how-to-use-coderpad-to-interview-software-architects/ https://coderpad.io/blog/interviewing/how-to-use-coderpad-to-interview-software-architects/#respond Wed, 26 Jun 2024 11:45:59 +0000 https://coderpad.io/?p=40073 Software architects are the masterminds behind the design and structure of software systems, ensuring that projects are scalable, maintainable, and aligned with business goals.

Unlike more hands-on engineering and development roles, assessing architect skills in an interview relies much less on watching them code and more on their ability to drive software design principles and influence the organization-wide direction of software architecture. 

While they’re generally pulled from the ranks of experienced senior developers, the ideal candidate must possess a blend of technical expertise, strategic thinking, and strong communication skills that go beyond managing a single application.

This can make hiring one a challenge, as passing them a coding test or asking them to solve a typical sorting algorithm won’t give you any indication of their actual skills in designing scalable and maintainable systems.

In this guide, we’ll explore how you can use CoderPad Interview to help you identify the best architects for your team using what matters most: their skills.

What makes a good architect?

Before we discuss how to interview architects, it helps to know what you’re looking for!

While they may share many common traits, what makes a good software architect differs from what makes a good software developer because architects generally work at a higher level of abstraction and across multiple teams within an organization.

Here are a few key traits you’ll want to look out for when interviewing architect candidates.

System design fundamentals

This one might be obvious – it’s why you need an architect to begin with!

System design and design patterns are central to a software architect’s role. These skills are crucial because they impact software systems’ scalability, maintainability, and success. Here’s a quick look at these design skills and their importance:

1. Scalability: Designing systems to handle increasing loads efficiently ensures that the system can grow with the business without significant rework.

2. Maintainability: Modular architectures and clear interfaces make systems easier to update or extend, reducing technical debt and facilitating long-term development.

3. Performance: Ensuring the system meets performance requirements involves making informed decisions about data storage, caching, and load balancing.

4. Reliability and availability: Designing for redundancy, fault tolerance, and failover mechanisms is crucial for mission-critical systems to avoid downtime.

5. Security: Proper authentication, authorization, and encryption mechanisms protect sensitive data and ensure attack resilience.

6. Design patterns: Proficiency in design patterns like Singleton, Factory, and Observer helps create robust and flexible architectures. Knowing when and how to apply these patterns is essential in designing high-quality software systems.

These skills ensure that software systems not only meet current requirements but are also adaptable to future needs, driving business success and growth.

Ability to understand tradeoffs

It’s one thing to know how to design systems. It’s a very different – and more complex – skill to do it with the many constraints that are involved in business decisions.

System design is all about tradeoffs, like:

  • Build vs. buy: Which components are worth building in-house, and which ones should you buy? How much customization do you actually need, or can existing products solve those needs?
  • Consistency, availability, or partition tolerance: Per the famous CAP theorem, “any disturbed data store can only provide two of the three guarantees.” Architects should be able to reason which one they’re willing to sacrifice and why.
  • Caching vs fetching from a database: Which transactions can and should be captured in a database, and which can be cached for quicker access by the user?
  • Asynchronous vs synchronous processes: Slow processing can kill the user experience, but having everything done synchronously can quickly consume computing resources. Knowing which components can do which type of processing is an essential skill for architects. 

Any high-level decision-maker must also make more fundamental tradeoffs, specifically between cost, time, and scope. 

An architect should have at least a basic understanding of budgeting and project management. While everyone likes to see their company adopt cutting-edge technology, it may not be the most appropriate design consideration given the cost or time it would take to implement.

Ability to drive architectural change 

A big part of an architect’s job is driving and leading architectural change across large teams. The role requires a unique blend of technical expertise, leadership skills, and strategic vision. 

Understanding how a candidate approaches this aspect of the job can provide significant insights into their suitability for the role. Below are some key points to consider when interviewing software architects about their experience and approach to leading architectural change.

Vision and strategy

A successful software architect must have a clear vision of the architecture’s future and a strategy for achieving it. 

Ask candidates to describe a time when they had to implement a significant architectural change. How did they develop their vision? What factors did they consider in their strategy?  How did they drive this strategy across the organization they were a part of? This will help you gauge their ability to think strategically and plan for long-term success.

Communication and collaboration

Leading architecture change involves effective communication and collaboration across various teams. 

Probe into their communication skills by asking how they convey complex architectural concepts to technical and non-technical stakeholders alike. How do they ensure that everyone, from developers to business leaders, understands the vision and their role in achieving it? 

Change management

Implementing architectural changes often involves navigating resistance and managing change effectively. 

Inquire about their experience with change management. How do they handle pushback from team members or other stakeholders? What strategies do they use to encourage the adoption of new architectures? 

Understanding their approach to managing change can reveal their resilience and ability to drive projects forward despite obstacles.

Technical leadership

Architects must not only lead in strategy and communication but also provide technical leadership. 

Ask about their hands-on involvement in coding and reviewing code. How do they stay current with emerging technologies and trends? What methods do they use to ensure the technical quality and integrity of the architecture? 

Their answers can shed light on their technical depth and continuous learning mindset.

By focusing on these areas, you can gain a comprehensive understanding of a candidate’s ability to drive and lead architecture change across large teams, ensuring you select an architect who can effectively guide your organization through complex technical transformations.

CoderPad features for architect interviews

Now that you have a solid understanding of what you’re looking for in a software architect, how exactly do you evaluate those skills?

While many of them, like leadership and how they develop vision and strategy, will depend on more soft-skill style interview questions, you can easily view more complex skill sets like system design and evaluation using a platform like CoderPad.

Drawing mode

With drawing mode, you can watch a candidate design a system based on your specifications or set up a system design for them before the interview and have them critique it. As they walk through the system set-up or critique, you can have them discuss their thought process, including some of the abovementioned tradeoffs. 

Drawing mode can be accessed inside any live-interview pad. To open it, click the Drawing button in the top left nav menu.

The draw button is highlighted in the left tab menu and the draw window is open in the center of the screen.

Both you and the candidate have access to open/close drawing mode at any time during the interview. 

Each participant controls their environment, meaning when an interviewer opens drawing mode, it will not open for the candidate. If you decide to close drawing mode, the contents of all participants will still be accessible upon re-opening.

That way, you can add details to the diagram during the interview to create opportunities for follow-up questions or to facilitate discussion on more complex system design concepts.

A common use case of drawing mode when interviewing candidates for architectural roles is the following : 

  • Upload an existing architectural diagram to drawing mode.
  • Set context on the architecture with the candidate.
  • Describe a problem set for which you want to test the candidates’ skills – scalability, redundancy, etc.
  • Ask them to make changes to your existing architecture in drawing mode to solve this problem set.

For more details on how to use drawing mode in your architect interview, check out our documentation.

Multifile projects and frameworks

To examine an architect’s ability to facilitate the implementation of their vision, you can have them create their ideal application design or critique an existing one. 

CoderPad Interview offers a multifile IDE in several languages and frameworks that replicate the primary working environments of the developers with whom the architect will work.

A common use case of multifile projects and frameworks to assess architectural skills is the following : 

  • Drag and drop an existing project used internally – this ensures that the candidate is solving a real-world problem you are facing today within your business.
  • Pose a set of questions around the design of the software.  These can include :
    • What critiques would you have for how this software is designed?
    • What design patterns would you use to improve this project?  How would their application improve this project?
    • What stands out as far as the scalability of this application is concerned?  How would you approach changing the design to address these concerns?

From there, you can use the environment to test a candidate’s knowledge of design patterns using pseudo-code or actual code, discuss potential performance and scalability issues, or any other technical skill you may want in your architect.

Check out the documentation here to learn more about setting up and using a multifile environment.

Additional helpful features

Interview review

There are four features you can use to make the most of your post-interview evaluation:

  • After the interview, you can access any diagrams the candidate created for review. 
  • During the interview, you’ll also be able to take private interviewer notes—visible only to you—that you can reference once the interview is over to assist you in evaluating the candidate.
  • As long as the candidate opts in, you’ll have access to a time-stamped interview transcript.
  • If any typing or coding was done in the IDE during the interview, you’ll have access to that in the interview playback that is available once you end the interview. 

Audio/visual capabilities

Are you hiring for a remote role or for a candidate who is currently out of the area? CoderPad has full audio and video capabilities to assist with this. This includes the ability to turn on closed-captioning for interviewers or candidates who may be hearing impaired. 

Psst. Are you following us on LinkedIn?

Conclusion

Interviewing software architects requires a thoughtful approach that goes beyond simple coding tests. Understanding their ability to design scalable, maintainable systems, make informed tradeoffs, and lead architectural changes is crucial. CoderPad Interview can streamline this process by providing tools that allow candidates to demonstrate their skills in real-time.

From utilizing the drawing mode to assess system design capabilities to leveraging the multifile projects feature to dive into architectural implementations, CoderPad offers a comprehensive platform for evaluating the diverse skill set required of a software architect. Additionally, post-interview features, such as interview review and audio/visual capabilities, ensure you can make well-informed hiring decisions, even for remote candidates.

By focusing on what truly matters – strategic vision, technical expertise, communication skills, and leadership – you can identify the best software architects who will drive your projects to success. CoderPad Interview empowers you to see beyond the code and into the architectural mindset, making your hiring process more efficient and effective.

]]>
https://coderpad.io/blog/interviewing/how-to-use-coderpad-to-interview-software-architects/feed/ 0
Upskilling Senior Software Engineers into Team Managers https://coderpad.io/blog/engineering-management/upskilling-senior-software-engineers-into-team-managers/ https://coderpad.io/blog/engineering-management/upskilling-senior-software-engineers-into-team-managers/#respond Wed, 29 May 2024 12:18:31 +0000 https://coderpad.io/?p=39893 Sometimes, the best tech managers are right under your nose.

When looking for leaders for a new team, or to replace one who’s leaving, it can be tempting to rush to your talent acquisition department with a list of needs and have them start building a pool of potential applicants.

But often, you need someone who is already familiar with how your team works and the details of getting things done at your company.

Giving your current employees the opportunity to lead can result in significant benefits for you – reduced expenses of onboarding a new employee and improved existing employee loyalty, to name two.

To move your potential leaders into actual leaders, you’ll need to consider two things:

  1. Who currently has the desire and the potential to lead?
  2. What skills might they be missing that would make them a great leader?

Not everyone wants to be a leader. Some are happy being skilled individual contributors who contribute advanced development and engineering skills to your team. 

Not everyone will have the skills or experience necessary to be a great leader, but the good news is that those skills and experiences can be easily gained with the right systems in place.

In this article, we will review the journey from coder to leader, unpacking the crucial skills senior software engineers need to cultivate to manage projects and personnel effectively. 

Understanding leadership in software engineering

Leadership within a tech environment is more than just project management; it involves envisioning and implementing strategies that align with the broader organizational goals. 

This role demands an understanding of both the big picture and the minute details—the former of which is not typically exercised in purely technical roles. Leaders must navigate the complex dynamics of managing people, projects, and sometimes entire departments.

In addition to overseeing project timelines and technical processes, tech managers must also be a bridge between their team and upper management – and sometimes clients. This requires a thorough understanding of the technical challenges and project demands and the ability to advocate for the team’s needs and negotiate resources or adjustments to ensure project success.

One key skill that eased my transition [to tech leadership] was the ability to solve complex problems while maintaining a strategic vision. My background in various industries taught me the importance of aligning technical solutions with broader business goals. For example, leading the development of Daisy’s ten-point branch support system was instrumental in scaling our operations and providing exceptional customer service.

The hardest part was shifting from hands-on technical tasks to strategic oversight and team management. It required a new level of trust in my team’s abilities and a focus on clear, effective communication. I wish I had known earlier the value of delegating effectively—it would have alleviated the initial overwhelm and allowed me to focus more on strategic growth rather than day-to-day operations.

Hagan Kappler, Cofounder and CEO of Daisy

An engineering leader must also be an agent of change. This involves recognizing when technological pivots or strategic shifts are necessary and guiding the team through transitions smoothly. It requires courage to make tough decisions that may initially be unpopular and the ability to steer projects away from potential pitfalls. 

When looking for current employees to move to leadership positions, it helps to ask them and their coworkers about their experience in these areas. For example:

  • Have they displayed the ability to strategize with other teams so that the whole project succeeds, rather than just the part they’re responsible for?
  • How have they managed complicated relationships or misunderstandings with other team members and stakeholders?
  • How have they handled prioritizing multiple tasks when they have insufficient time and resources to complete all of them on time?
  • What difficult decisions did they have to make on a project, and why did they decide the way they did?

The answers to these questions will help you get an idea of the leadership styles of your internal candidates and whether or not they fit the needs of your team or organization.

Essential leadership skills for technical managers

Whether your internal candidates come with the necessary leadership experience or will need some help gaining it, you should focus on the following to ensure they develop into great leaders. You’ll find some suggestions you can give your future leaders to develop specific skills.

Communication skills

Misunderstanding will happen at any time; learning to reduce the risk of it is crucial for future leaders. These skills are clear and effective communication techniques, focusing on speaking and listening skills.

Ways to practice

     – Active listening exercises: Engage in exercises that promote active listening, such as feedback sessions where you listen, summarize, and respond to team members’ ideas.

     – Communication workshops: Participate in communication skills workshops to enhance verbal and written communication abilities.

Project management

At its simplest, project management involves balancing resources to complete a project as efficiently as possible. This may be done through methodologies like Agile and Scrum, but it ultimately focuses mainly on delegation and time management.

Ways to practice

     – Certification courses: Consider obtaining certifications in project management methodologies such as PMP or Scrum Master to deepen your understanding and credibility.

     – Lead a project: Use these methodologies to take the lead on a project and gain experience in the challenges and benefits of different project management techniques.

Team Building

Not just your skip-levels and confidence courses anymore – team building can be any strategy for fostering a collaborative team environment and nurturing team dynamics.

Ways to practice

     – Team events: Organize or participate in team-building events to strengthen relationships and improve team cohesion.

     – Regular team meetings: Conduct meetings focusing on open communication and collective problem-solving to enhance team dynamics.

Team leadership

Getting through a difficult time often depends on how great a motivator a leader can be. You’ll often see this as an ability to inspire and guide teams towards achieving organizational goals.

Ways to practice

     – Leadership training programs: Enroll in leadership development programs to learn and practice essential leadership skills.

     – Team lead roles: Volunteer for or request to be placed in team lead roles on smaller projects to gain practical leadership experience.

Decision-making

Knowing how to make decisions when information is incomplete and resources are scarce is essential. In leaders, we want the ability to make timely, effective, and informed decisions.

Ways to practice

     – Decision-making frameworks: Learn and apply different decision-making frameworks to everyday challenges.

     – Shadow leaders: Shadow senior leaders in your organization to observe and discuss decision-making in real scenarios.

Conflict resolution

Conflict is inevitable when humans are involved. Therefore, your leaders should have the skills to effectively manage and resolve interpersonal and team conflicts.

Ways to practice

     – Conflict resolution workshops: Participate in workshops that simulate workplace conflicts and provide strategies for resolution.

     – Mediation role: Act as a mediator in conflicts within your team to gain hands-on experience in conflict resolution.

Transitioning from an individual contributor as a software engineer to a leadership role was a calculated move – and quite an interesting journey. While I loved the intricacies of programming and software development, I realized that to make a broader impact, leadership was the way forward. I was always interested in strategy, planning, and the overarching picture of how technology can influence operations – aspirations that pushed me into leadership.

Past experiences as a Software Engineer at Brodia and a Tools Engineer at WebTV Networks prepared me with significant elements in leadership like critical thinking, problem-solving, and understanding technical nuances. 

The hard part of this transition was initially letting go of the granular control I had as a developer. Leaders need to trust their teams and let them do their jobs while providing high-level guidance. Knowing how to delegate without micro-managing is key. I also learned that leadership demands more soft skills, like clear communication to diverse audiences, conflict resolution, and empathy, which aren’t necessarily the main focus during the early years as a developer. It’s a constant learning curve with bumps along the way, but a rewarding journey worth every effort.

To any aspiring tech leaders, my advice would be to strengthen your soft skills and learn to trust your team. Also, gain a broader understanding of business beyond your tech niche. This knowledge will enhance your decision-making, helping you frame technological issues and solutions from a business perspective.

Javier Muniz, CTO at LLCAttorney.com

Technical skills proficiency

Like any good leader, technical managers should be proficient in the same skills they manage. They don’t need to be the best (and probably shouldn’t, as they’ll need to delegate), but they need to be able to talk the talk and walk the walk with their employees.

In practical terms, they must possess a robust understanding of their teams’ technical skills. This helps earn the respect and trust of their developers, who value leaders with genuine software development experience and credentials.

After finishing my Computer Science degree, I started as a software developer in a bank, then joined Accenture as a senior developer. Within 2 years, I was promoted to a team leader/technical architect role. I later started my own software development agency, initially contributing as a developer and now managing a team of 30.

The journey wasn’t easy and still isn’t. Being a software developer is completely different from being a leader. Most developers are introverted, while leaders need to be motivating and communicative. I always wanted to be in charge, so I had to work hard and overcome mental barriers.

Core skills I had to develop:

  • Responsibility
  • Prioritizing business benefits over personal interests or ego
  • Communication skills

Final advice: Tech leadership is about guidance, not doing everything yourself. Many tech leads prefer to do things themselves because it’s faster and better, but your goal as a leader is to mentor, take responsibility for others, and plan ahead.

Alex Ragin, Founder of Zoftify

Some general technical areas that leaders should be proficient in include:

  • Architectural thinking: Understanding system architecture is vital for overseeing projects effectively, ensuring that technical strategies align with business objectives.
  • Code review mastery: Employing code reviews as a method for mentoring and ensuring quality assurance, fostering a culture of continuous improvement.
  • Keeping up-to-date on technologies: Staying abreast of new programming languages, tools, and frameworks to maintain relevance and provide knowledgeable leadership.

If your future leaders lack in any of these areas, the recommendation for filling those gaps is similar to the advice for general leadership skills in the previous section.

  • Continuing education: Technical managers should regularly participate in educational courses, obtain certifications, and attend industry conferences to keep their technical skills sharp and up-to-date.
  • Hands-on projects: Engaging directly in technical projects, whether leading or contributing, helps managers stay connected with the current technology landscape and understand their teams’ practical challenges.

Developing business acumen

Good leaders understand how to efficiently combine and manage resources to create great products and make customers happy.

Rather than spending my life as an employee, I wanted to build my own team, which would give me the freedom to work on my dream projects. Also, being a software developer meant restricting myself to a single field without much room to explore newer fields like AI. My lack of freedom to make decisions and work on things that would use the full extent of my brainpower made me transition to be a tech business leader.

My years toiling as a software developer working with multiple teams and commandeering their feedback or issues have helped me be a better tech boss. I was more open to listening to my peers and took a bottom-up approach – leading to ingenious ideas and plan execution. However, the financial aspect of running a business became challenging, and I wish I had had proper knowledge of accounting, taxes, and corporate financing. Hence, I advise aspiring tech leaders to transition if they truly love being 100% invested as a tech geek, and proper knowledge about business finance goes a long way.

Mark Gadala-Maria. Co-founder and CEO of Post Cheetah

You’ll want to develop several key areas in your leaders so that they are prepared to make the best possible decisions for your company.

  1. Understanding product lifecycles: Understanding how to integrate business goals with technical development is essential. To help facilitate this, future leaders can sit with and regularly meet members of your product development team who are outside the engineering realm, such as product managers, product owners, and customer service. 
  2. Risk management: Great rewards often require great risk, so identifying, analyzing, and managing risks in software projects is paramount. Tech leaders need to know how to do risk-benefit analyses so they can understand the tradeoffs of decisions they’ll have to make. Learning this can be done in one of many risk management courses or with the right mentor.
  3. Understanding financial fundamentals: Senior software engineers aspiring to leadership positions should start by gaining a solid understanding of the financial aspects of the business. This includes comprehending financial statements, budgeting processes, and how their projects impact the company’s bottom line. Resources like online courses on financial literacy for non-financial managers can be incredibly beneficial.
  4. Learn multiple aspects of the business: Encourage engineers to participate in cross-functional teams to collaborate with peers from sales, marketing, and operations. This exposure helps them understand different facets of the business and how they interlink, enhancing their decision-making skills from a business perspective.
  5. Customer engagement: Direct engagement with customers can provide invaluable insights into how products and services are used and the value they add. This engagement aids in sharpening product development and innovation aligned with market needs.

Focus on these areas will help your internal candidates become business leaders and tech leaders.

Empowering others through mentoring and coaching

If you’re going to be a leader, you need to know how to lead others. A significant portion of this is knowing how to mentor and coach your employees. 

If your company already has a mentor program, you can have your future leaders participate so they can start getting experience helping newer employees become successful. 

If you don’t have a program in place, it may be an excellent time to start a structured mentorship program that pairs less experienced engineers with senior leaders. These programs should have clear objectives, such as leadership development, technical skill enhancement, or career progression, and regular feedback loops to measure progress.

In addition to learning how to mentor, you can help your future leaders develop the following competencies:

  1. Role modeling: Emphasize the importance of role modeling within the mentoring and coaching process. Senior engineers can demonstrate best practices in coding, project management, and communication. Showing rather than telling can often be a more robust method to impart knowledge and skills.
  2. Coaching for specific competencies: Highlight the importance of coaching for specific competencies. This could include technical skills, such as learning new programming languages or systems, and soft skills, like leadership, communication, and conflict resolution.
  3. Encourage self-reflection: Guide senior engineers to encourage their mentees towards self-reflection. This can involve setting up regular one-on-one meetings where they discuss technical challenges, personal growth, and career aspirations.
  4. Recognition and encouragement: Teach mentors the importance of recognizing and verbalizing their mentees’ strengths and improvements. Positive reinforcement can boost confidence and motivation, which is crucial for ongoing development.
  5. Adapting coaching styles: Different mentees may require different coaching styles. Encourage mentors to be flexible and adapt their coaching style to fit their mentees’ needs. This might mean being more hands-on for some while stepping back and providing guidance from a distance for others.

Making the jump from individual contributor to a leadership role was a big change for me, but one that I felt ready for after many years spent gaining technical skills and experience in the industry. As an individual, I enjoyed diving deep into projects and solving technical problems. But over time, I started wanting more opportunities to mentor others and help guide the strategic direction of initiatives.

I believe what helped most in preparing me for leadership was the time I spent learning how different parts of the business worked together. Even when my focus was on a specific technical task, I made an effort to understand how it fit into broader goals. I also volunteered to collaborate across teams so I could see different perspectives. This business acumen proved invaluable when I took on more managerial duties.

Of course, leading a team brought new challenges too. Figuring out how to delegate effectively while still tracking progress was a learning curve. Early on, I caught myself micromanaging details instead of trusting others’ expertise. Also, adapting my communication style to different personalities and working styles within the group required some adjustment.

In hindsight, I wish I started cultivating strong relationships across departments sooner. Building those connections would have made transitioning to a leadership position a bit smoother. It’s important for leaders to have an understanding network both inside and outside the organization for support, advice, and fresh perspectives when navigating complex situations.

For anyone aspiring to a tech leadership role, my advice would be to start developing strategic thinking skills early. Focus on fostering partnerships, setting long term visions, and gaining a holistic understanding of business objectives. Always seek feedback to grow your empathetic abilities too. Most of all, have confidence in your expertise while maintaining curiosity to constantly expand your knowledge alongside new technologies. The transition is challenging but deeply rewarding when done right.

Taimur Ijlal, Information Security Leader at Netify

Conclusion

While transitioning from a senior software engineer to a leadership role does require deepening one’s technical skills, it requires a significant expansion of one’s horizons in business acumen, strategic thinking, and people development.

Leaders who invest in these developmental pathways advance their careers and foster an environment of growth, innovation, and resilience within their teams. By modeling behaviors, facilitating learning, and guiding new leaders, they lay down the foundations for a future where the technical workforce is more dynamic, responsive, and aligned with the broader business objectives.

For engineers stepping into leadership roles, remember that the journey involves continuous learning and adaptation. It’s about leveraging your strengths and steadily acquiring new skills that enhance your capabilities and uplift those around you. By doing so, you not only meet the immediate demands of your role but also contribute to your organization’s long-term success and vision. Embrace these challenges with openness, dedication, and a commitment to excellence, and watch as you transform from a leader in technology into a leader of people.

]]>
https://coderpad.io/blog/engineering-management/upskilling-senior-software-engineers-into-team-managers/feed/ 0
10+ Steps, Tools and Resources to Create a First-class Upskilling Culture https://coderpad.io/blog/engineering-management/improve-performance-retention-and-morale-with-upskilling/ https://coderpad.io/blog/engineering-management/improve-performance-retention-and-morale-with-upskilling/#respond Fri, 29 Mar 2024 10:45:48 +0000 https://coderpad.io/?p=39152

“Upskilling, what the hell is that?!”

Anonymous

If you’re like our unidentified friend in the quote above, here’s the TL;DR (Too Long, Didn’t Read if you don’t know what that is too) from the world’s most famous AI chatbot:

Upskilling refers to the process of learning new skills or enhancing existing ones. It’s a way for individuals to improve their employability and stay relevant in the ever-changing job market. 

Upskilling can involve formal education, training programs, online courses, workshops, or even self-directed learning.

Why is that important for you?

For businesses, upskilling often means providing training and development opportunities to their employees. This helps the workforce adapt to new roles or technologies, thus ensuring the company can meet evolving business challenges and opportunities. 

Upskilling is a proactive approach to career development and is considered crucial for both personal and organizational growth in a dynamic economic landscape.

My employer supported me in my Statistics Diploma, paying for 75% of it (UK government also paid, so it was about £1k a year for 4 years) and allowing me 1 day a month to study from home. It was 100% relevant to my job and definitely was an advantage for me & them. It was a 4 year part-time (evenings & weekends) course, but I could apply the knowledge immediately as I was learning it, so all in all, WIN-WIN.

Ida, Senior Data Analyst

In this in-depth guide, we’ll cover everything you need to know about upskilling, from the dictionary definitions to the steps you can take to implement your own upskilling program, either for yourself or your entire company.

The why and who of upskilling

Any organization’s ability to maintain technical relevancy is directly related to the skill set of its software developers, data scientists, and other technical employees. 

I don’t need to tell you that technology moves fast—every day, a new JavaScript framework or Python library seems to be making its way into enterprise applications. So, if your company is going to outdo competitors and stay on the leading edge of product development, you need to ensure that your technical employees are regularly improving their development skill set.

For the company

Setting up an upskilling program for your company has numerous benefits, some obvious and some less so.

Stay ahead of technology changes

You will always have employees who love learning new tech. When you encourage them to learn it, you have a whole new set of resources at your disposal, allowing you to pivot product direction quickly and stay ahead of your competitors.

Better research and development results

Bringing new tech skills into your R&D will allow you to synthesize new ideas and technologies to create even more advanced products.

Improved ability to spin up new teams for projects

With more skillsets at the ready, your project managers and team leaders can more effectively create the teams they need to accomplish their goals.

Improve employee loyalty and morale

When employees see that you’re invested in their career growth, they’re more likely to stay with your company. Exposure to new challenges and new kinds of tech also makes many developers happy, so that you can expect improved morale.

For the employee

Most developers will naturally desire to upskill or, at the very least, understand its importance. 

For example, front-end and back-end developers often move to full-stack developer positions to improve their skill set. They may also see a shiny new framework and want to dive deeper into it to see how it can benefit their job.

You can discuss these points with tech employees who are still a bit reluctant to learn something new.

Job relevance

Employees who learn new skills will not leave a job anytime soon. Their enhanced skill set will make them more valuable to the company.

Assignment to special projects

New product or feature teams often require new technologies. The more of these technologies an employee knows, the more likely they will be assigned to exciting new projects.

Enhanced career growth

By advancing their knowledge of their existing skills and learning new skills, employees increase the number of career opportunities available to them. Just make sure you have a solid career path in place for them, lest you lose the employee to another company offering a better opportunity.

Implementing an upskilling strategy

Identifying the need for upskilling vs. recruitment

Generally there are three ways to bring needed skills into your organization: upskilling, hiring a new employee, and hiring a contractor or freelancer.

How do you determine when to hire versus when you should spend the resources on upskilling? You can ask yourself these questions:

How easy is it for someone to learn?

Can one of your employees pick this up quickly? Or does it take months or even years to master? 

The difficulty of learning the skill and the urgency with which you need it will determine whether you can spend the time to upskill or if you need to hire someone from outside the company.

How urgent do we need the skill?

Will not having this skill now cost us productivity, lost revenue, increased expenses, etc? Or can we afford to wait?

The less urgent this is, the more you should go with upskilling. If you need the skill in the near or intermediate term, and it’s challenging to learn, you may want to go with an external hire or contractor.

Do we have a long-term need for the skill?

Are you looking for a particular skill for a one-off project? Or will you need it for future projects? If it’s the latter, investing in upskilling will be cheaper and more beneficial in the long run.

What’s the premium to hire someone with the skill?

Hiring externally is resource-intensive. You have to think about the time and costs associated with:

  • Creating a talent pool
  • Assessing skills
  • Interviews (both cultural and technical)
  • Onboarding the new hire or freelancer

With upskilling, you’re really only looking at the costs of training the employee on the skill and any time away from their regular projects or teamwork.

Do we have current employees who want to learn it?

Do you have employees who want to be upskilled? Some technologies will be more popular than others, and you’ll have to be selective about who is upskilled. With others, you may have to add more incentives.

Creating an upskilling culture

Once you’ve determined that your company needs to upskill, you’ll want to create an environment that facilitates learning new skills. Here are some practical steps to foster such a culture.

1. Leadership endorsement

Model the behavior: Leaders should actively participate in learning initiatives, demonstrating their commitment to personal growth.

Communicate the value: Regularly discuss the importance of learning and development in meetings, newsletters, and other communications.

Every level of our management teams actively supports and encourages progression into more senior roles and appreciates the link between personal and organizational growth. Our apprenticeship program is the flagship for our employee upskilling and development. It offers a blend of practical experience and theoretical learning that works for various learning styles and approaches.

Wendy Makinson, HR manager at Joloda Hydraroll

2. Create personalized learning plans

Assess individual needs: Identify skill gaps and career aspirations for each employee. A great way to do this is via an engineering matrix. CoderPad offers a self-generating engineering matrix with its Map product.

Tailor learning paths: Develop personalized learning plans that align with career goals and organizational needs.

3. Provide access to learning resources

Invest in platforms: Subscribe to online learning platforms that offer a variety of courses and materials.

Offer time for learning: Allocate work hours specifically for professional development activities.

4. Encourage knowledge sharing

Organize learning sessions: Host regular seminars or workshops where employees can teach skills they’ve mastered.

Create internal knowledge repositories: Use intranets or shared drives to store and share learning materials and project insights.

5. Support and recognize progress

Celebrate achievements: Recognize and reward learning milestones, such as completing courses or earning certifications.

Provide constructive feedback: Offer regular, supportive feedback on learning progress and application of new skills.

6. Encourage experimentation

Encourage risk-taking: Promote an atmosphere where trying new things and sometimes failing is a part of the learning process.

Learn from mistakes: Conduct post-project reviews to extract lessons and apply them to future projects.

7. Integrate learning into career development

Link learning to advancement: Make skill acquisition and professional growth a significant part of performance evaluations and promotion criteria.

Develop mentorship programs: Pair less experienced employees with mentors to guide their learning and career path.

8. Facilitate external learning opportunities

Support conference attendance: Allow employees to attend industry conferences or workshops.

Reimburse education: Offer tuition reimbursement for relevant courses or professional certifications.

9. Establish learning communities

Create interest groups: Support the formation of book clubs, coding dojos, or special interest groups focused on particular technologies or methodologies.

Leverage social media: Use platforms like LinkedIn or internal social networks to share articles, videos, and discussions related to learning topics.

10. Regularly reassess and adapt

Solicit Feedback: Regularly ask employees for feedback on learning initiatives and what could be improved.

Reassess skills: Regularly evaluate skills to measure growth and identify further gaps and opportunities.

Stay agile: Be prepared to adapt learning strategies as technology evolves and business needs change.

Building excitement and maintaining momentum

Once you get your upskilling program in place, you can do a couple of things to ensure that your employees get the most out of it.

Making training engaging

Repeat after me: “PowerPoint is not an effective way to get employees to receive and retain information.”

You know this is true, too. There’s a reason “Death by PowerPoint” has become part of modern office lingo. And you’ve sat through your share of PowerPoint presentations where the “instructor” just reads the slides, and three hours later, you can’t remember what they talked about.

Training must be interactive for it to be effective. And that’s more than just getting people to raise their hands to answer softball questions.

Developers are doers. If you want to make training engaging for them, you need to give them hands-on coding tasks throughout so they can see how the technology they’re learning about actually works.

Another way to improve engagement is to make learning fun; gamification is an increasingly popular approach. Gamification is exactly what it sounds like—you turn learning into a game. This can be video-game-like challenges, trivia contests, escape-room-type puzzles, etc.

There are many tech learning platforms that implement gamified questions; you can learn more about them in the Tools and Resources section.

Another thing to consider is to gamify your regular skills assessments as well. This will help improve the percentage of employees completing these tests, giving you a more accurate measure of an employee’s skill set at any given time.

Application of skills

Anybody who spent their youth playing the clarinet only to give it up when it became “uncool” knows how quickly skills deteriorate when you’re not using them regularly. 

It’s great if your employees can use their new tech skills on side projects or home hobbies – but to really solidify the learning (and get your maximum return on investment), you’ll want to ensure they’re using them quickly after the course in which they learned them.

Make sure you have the processes in place to onboard them onto the projects or teams where their new skills are needed, or at the very least, set aside time for them to teach or regularly practice their skills to keep them sharp. 

Trying to deliver in-person training remotely just wasn’t practical, and coupled with a realization that staff were struggling to find the time to prioritize learning, we adapted our approach. We now hold bi-monthly Together Weeks, where we bring together the entire team from across the country to collaborate, catch up and socialize. A significant portion of these weeks is set aside for training and development, ensuring that every single member of staff has time to focus on upskilling in a supportive environment. Outside of these weeks, we’ve also implemented a buddy system that gives employees a specific person to turn to if they have questions or need any additional support with learning. It’s been a hugely successful approach with us seeing staff members continue to develop their skills and flourish in their careers with us, which is reflected in our high staff retention rates.

Tracey Beveridge, HR Director at Personnel Checks

Tools and resources

Skills assessment platforms

  • CoderPad Map: Effectively assess your developers’ skills in 70 languages and domains in engaging technical tests and upskill them to form your dream team.
  • Pluralsight Skills: Pluralsight Skills offers a technology skills platform that features skill assessments, learning paths, and courses designed to help companies identify and close the technology skills gaps among their current employees through targeted training.
  • Coursera for Business: Coursera for Business provides a comprehensive learning platform that allows companies to assess the skills of their workforce, identify gaps, and offer access to courses from top universities and companies to upskill employees in various domains, including business, technology, and data science.
  • Udemy for Business: Udemy for Business offers an extensive collection of courses and a learning platform that enables companies to assess employee skills, identify areas for improvement, and provide access to a wide range of courses for upskilling and reskilling across various functions and disciplines.

Gamified learning platforms

  • CodinGame: A platform that turns coding into a game, offering puzzles and challenges to improve programming skills in a fun and interactive way.
  • Brilliant: An interactive learning platform focusing on math, science, and data analysis through problem-solving and active learning.
  • EdApp: A mobile-first microlearning platform that incorporates gamification elements to engage learners and enhance retention.
  • Kahoot: A game-based learning platform used as for creating quizzes and interactive lessons.

Other learning platforms

  • Udemy: A vast marketplace for learning and teaching online where students can master new skills and achieve their goals with a wide range of courses.
  • Khan Academy: A nonprofit educational organization providing free video tutorials and interactive exercises for personalized education in various subjects.
  • Pluralsight: A technology workforce development company that offers a variety of video training courses for software developers, IT administrators, and creative professionals.
  • Coursera: An online learning platform that partners with universities and organizations worldwide to offer courses, specializations, certificates, and degree programs.
  • edX: A trusted platform for education and learning founded by Harvard and MIT, offering high-quality courses from the world’s best universities and institutions.
  • LinkedIn Learning: An online educational platform that helps individuals discover and develop business, technology-related, and creative skills through expert-led course videos.
  • Codecademy: An interactive learning platform offering free coding classes in 12 different programming languages, including Python, Java, Go, JavaScript, Ruby, SQL, C++, Swift, and Sass.
  • Skillshare: An online learning community with thousands of classes for creative and curious people on topics including illustration, design, photography, video, freelancing, and more.
  • Udacity: A digital learning platform that offers intense tech training through “Nanodegree” programs in fields like data science, artificial intelligence, digital marketing, and web development.

Knowledge sharing platforms

  • Confluence: A content collaboration tool that changes how modern teams work, allowing them to create, share, and collaborate on projects all in one place.
  • SharePoint: A web-based collaborative platform that integrates with Microsoft Office, used primarily for document management and storage systems.
  • Yammer: A social networking service for private communication within organizations or between organizational members and pre-designated groups.
  • Jive: A comprehensive collaboration hub used for employee engagement and as a corporate communication platform.
  • Notion: An all-in-one workspace for note-taking, project management, and task organization that blends your everyday work apps into one.

Other helpful articles and resources

Conclusion

Fostering an upskilling culture within your organization is not just a beneficial strategy—it’s necessary in today’s rapidly evolving technological landscape. By investing in the continuous development of your employee’s skills, you prepare your workforce for the challenges of tomorrow but also position your company as a forward-thinking leader in innovation and employee satisfaction.

At BeamJobs, we’ve embraced continuous learning and development for our users and team. Implementing an upskilling program within our company was a strategic decision to ensure our team remains at the forefront of the rapidly evolving job market and resume-building technologies. This initiative has fostered a culture of growth, innovation, and adaptability.

The program we designed offers a blend of internal workshops, access to online courses, and a budget for attending conferences or pursuing certifications relevant to each team member’s role and career aspirations. Our product development and customer support teams have had the most significant impact. They’ve directly translated new learnings into improved user experiences and more effective problem-solving strategies.

One aspect of the program that has been particularly well-received is its flexibility. Team members can choose what skills they want to develop and how they want to learn, making it a highly personalized experience. This autonomy has boosted morale and encouraged a sense of ownership and responsibility for personal and professional growth.

However, we faced a challenge in ensuring that the time allocated for upskilling did not impact our operational efficiency. Balancing day-to-day responsibilities with learning opportunities required careful planning and scheduling. Despite this, the benefits have far outweighed the challenges. Our team has become more skilled, confident, and engaged, directly contributing to enhancing our services and the satisfaction of our users.

From this experience, my key takeaway is that investing in your team’s growth is investing in your company’s future. An upskilling program is about acquiring new skills and building a culture that values continuous improvement, adaptability, and innovation.

Stephen Greet, Co-Founder, BeamJobs

The journey towards creating a robust upskilling culture requires commitment, strategic planning, and the active involvement of all stakeholders. From leadership endorsement to personalized learning plans and from providing access to learning resources to encouraging knowledge sharing, each step is vital in cultivating an environment where learning is valued and progress is celebrated.

Moreover, as you embark on this upskilling journey, remember that the ultimate goal is not just to fill skill gaps but to inspire a mindset of continuous improvement and curiosity among your team members. By doing so, you ensure that your organization not only keeps pace with technological advancements but also fosters a workplace where employees are engaged, motivated, and loyal.

Some parts of this blog post were written with the assistance of ChatGPT.

]]>
https://coderpad.io/blog/engineering-management/improve-performance-retention-and-morale-with-upskilling/feed/ 0
These 9 Red Flags Are Scaring Away Candidates During Interviews https://coderpad.io/blog/engineering-management/these-9-red-flags-are-scaring-away-candidates-during-interviews/ https://coderpad.io/blog/engineering-management/these-9-red-flags-are-scaring-away-candidates-during-interviews/#respond Thu, 21 Mar 2024 11:47:31 +0000 https://coderpad.io/?p=38840 There’s no shortage of advice for candidates on what they should avoid in an interview—don’t wear street clothes, don’t be rude, don’t don’t. You know the red flags that warn you when a candidate might not fit your team.

But what about you, the interviewer?

As the gatekeeper who ensures that only the most qualified candidates make it onto your team, how you act in an interview is very important.

53% of job seekers have had at least one negative experience in the hiring process in the past 12 months. And 52% of job seekers had declined a job offer due to poor experience.

CareerPlug.com

Just as you need to ensure quality on your team, your candidates are going to ensure quality in their employers. If you can’t show them you’re a great person to work with or your company isn’t a great place to work, the candidate will run faster than you can say “Glassdoor reviews.”

If you’re like most people, treating a candidate poorly isn’t in your nature. However, you might be exhibiting certain behaviors unintentionally that don’t reflect well on you or your company.

Here are the top ones you’ll want to avoid if you want to make the interview go well and your workplace a top organization to work for.

Inadequate preparation

When I was a student, I managed to get an interview for a SWE internship in the US. I was nervous as it was maybe the first time of my life that I have to speak in English over the phone, and one of my first job interview ever. That interview was a nightmare!

  • The environment was noisy. Which is probably fine for a native English speaker but it was difficult for me to understand some questions. Often, I couldn’t hear the very first word, but if you don’t know if the question is about “why” or “how” or something else, it’s difficult to answer. So I asked the person multiple times to repeat. And she would repeat the question like I’m a two year old while I only needed to know what was the first word of the question . So embarrassing.
  • No programming questions! Only product questions such as: what’s your favorite software? which feature would you like to add to it? I was really not prepared for these kind of questions!

And after that, no feedback at all, only a bunch of reading recommendations.

Maxime, Director of Engineering

There’s no greater sign of an unprofessional attitude than not properly preparing for an interview. 

Darth vader says "i find your lack of preparation disturbing."

Candidates often spend hours preparing for interviews—sending applications, personalizing resumes, writing cover letters, researching the company, and, most importantly, probably taking time off from their paid jobs.

What does it say about respecting their time when you run late or don’t have questions prepared?

It may seem obvious that you should be on time for the interview and have your questions prepared ahead of time.

Here are some less obvious ways to prepare so you’re not leaving your candidates with a sense of unease about your team’s interview process:

  • Ensure all interviewers know the date and time of an interview (set multiple reminders if you need to remember). Have backup interviewers for emergencies. Keeping track of all this in a shared document may be helpful.
  • In a similar vein, make sure each interviewer asks the candidate different questions so they don’t hear the same thing five times in a row.
  • Ensure you and the other interviewers set aside time to prepare. It’s a good idea to make this a quick team meeting.
  • Ensure you have a quiet environment in which to conduct the interview.
  • Make sure you’re ready to take notes. Everyone helping with the interview should have an easy place to write down their thoughts.
  • If you’re conducting a remote interview, ensure your candidate has a link to your interviewing platform and that they have any materials they need to prepare for the interview.

For example, we have templates we use for each job we post at CoderPad. Here’s a snippet of one that was filled out for a data analyst.

a table that has the following key values:
title - senior data,
manager - Name of the manager
Derpartment - analytics
location - remote in europe
level - senior

Below that it was:

Framework for hiring right
1. Why am i hiring?
2. who am i hiring?
3. how will i assess talent?
4. what is my evaluation criteria?

The document is shared between all our interviewers and contains the questions to ask and the appropriate assessment criteria for the questions.

Candidates appreciate this kind of preparation, as it shows that our care for them as applicants would extend to care for them as employees. 

If you show your candidates you can’t prepare for them before they accept the job, they’re going to think the company will be equally unprepared when they’re full-time employees. Few people aspire to work in a role where ambiguous processes and impromptu decision-making further complicate routine tasks.

Being prepared boils down to one thing: respecting the candidate’s time and effort in the interview process.

Being evasive

I was in applying for a job with a long process 4 steps and 1 case study, I was already at the third step and didn’t manage to get a clear answer on the salary from my various interviewers – they stayed evasive: it depends on the experience/profiles they were saying.

I finally got the info when they were ready to move me to the last stage. It was way under what I was earning in my previous job for the same type of mission. The way they approached it was to try and hook the candidate enough for the salary not to be important.

I turned down the job and It felt like a waste of time for everyone.

Alice, Content Manager

Some of the questions candidates ask you will be easy: What’s your tech stack? How many people are on the team? Does pineapple belong on pizza?

Other questions will be more difficult. They may enter into grey areas or have answers that may scare away the candidate.

A woman shouting at a cat saying "it's not fully remote if i have to come into the office!"

Is the PTO really unlimited? What are the core working hours? Why did the last person leave your team?

Lying or twisting a true statement to mean something else that misleads the candidate is dishonest and unprofessional and only hurts your hiring process. At best, your candidate accepts the job and stays on for a little while until they realize you lied, and then you can expect their productivity to drop and them to start looking for a new job.

At worse, you’ll find yourself paying out unemployment and trying to find a new employee days after spending all that time hiring the one you lied to.

The solution? Be honest. The candidate can judge whether a less-than-desirable working arrangement is worthwhile for them. 

If candidates keep turning down job offers because of these uncomfortable truths, you may need to rethink your policies and processes until you can create an environment your future employees will enjoy working.

Using leet code interview questions

I did an interview for a company that wanted me to do a computer science leet code type of test. Basically this exercise: https://www.javatpoint.com/find-number-of-island-in-java

The interviewer was on a video Zoom call while I stumbled around trying to figure out what to do. He was getting visibly frustrated that I was taking so long and not making any progress finding imaginary islands from a given array of 1’s and 0’s. It must have been an hour and half later when he eventually gave up.

I said “Well. I suck at finding islands but I can show you how I build WordPress sites which is what I do in my day job.”

His sense of humor was about as good as I was at depth first search algorithm exercises.

Russell, Marketing web developer

Leet code questions – also often known as “whiteboard” questions – measure a candidate’s ability to remember how to implement algorithms and theories from computer science courses rather than their ability to perform the real on-the-job needs of the role.

A man hesitating between 2 buttons, one labelled "answering white board questions" and another labelled "bathing in hot sauce".

In other words, they’re tedious and boring and don’t really tell you how a candidate will perform as an employee of your team.

While they may be useful with the most junior candidates, they will absolutely annoy higher-level candidates, and you’ll see them regularly turn down your job offers.

We’ve written whole articles on how to design great technical interview questions, but it can be summed up like this:

  • Use a question that reflects an actual business task.
  • Use an appropriate IDE for the candidate to code in.
  • Make the question instructions readily available.
  • Make the question collaborative.
  • Allow the candidate to ask clarifying questions.

Pressure tactics 

I was in an interview, facing a tandem of interviewers – the first is conducting the interview and the second one is never talking or responding when I answered questions, never engaging with me.

I had the impression to be in a bad cop/good cop situation. I later learned that it was a posture he adopted on purpose to see how candidates reacted to pressured/uncomfortable situation. Nothing to do with the set of skills I needed for the job at the time.

Alice, Content Manager 

As an interviewer you should be focused on eliciting information and insights, not on persuasion like a car salesperson.

A 2 panel meme. on the left is an uno card that says "accept our offer today or draw 25". in the 2nd panel a man is holding over 25 cards.

Trying to see how your candidates work under pressure or forcing them to accept the job with an unreasonable deadline will likely backfire. Unless you’re interviewing for a police officer or firefighter, there is no need to put your candidates in a stressful situation to see how they’d respond.

Some “popular” tactics to create high-pressure situations in the interview process:

  • Giving the candidate a very short deadline to accept a job offer.
  • Asking intimidating questions.
  • Asking multiple difficult questions.
  • Testing under severe time constraints.
  • Panel interviews.
  • Making the candidate wait before the interview and in between interview steps.
  • Being intentionally rude to the candidate.

Other than being completely off-putting—and candidates will spread this message about your company—it’s also a great way to eliminate great candidates from your talent pool.

Some people are great creative and problem-solving minds, but they need time to think over their solutions. Others will see how ridiculous a high-pressure interview for a software developer position is and run in the other direction. Some are just not good interviewees, and the high-pressure situation just makes them even more flustered.

Your goal as a hiring manager is to bring out the best in your candidates. You won’t do that by stressing them out unnecessarily.

Unclear expectations

Developers really appreciate getting an overview of the whole interview process, from the get go. I like to be aware of how many rounds there’s going to be, and a rough timeline. When is the company looking to hire by? What kind of coding challenges am I going to be doing? It’s hard to come in and be put on the spot with no context around what you’re doing and the aim of the exercise […] Just give us a little time to prepare mentally.

Ricardo Tovar, Software Engineer

Extract from our Webinar “What Developers Hate Most About the Hiring Process & What Recruiters Should Do Instead

If you assume your candidate knows all the rules of completing a technical exercise, you’re expecting your candidate to be telepathic.

Can they use ChatGPT, Google, or third-party libraries? Is there a time limit? Can they exceed the time limit if they are close to a solution?

Likewise, even if you think your job listing fully explains the job’s duties, you’ll find that there are many ways to interpret them, especially if they’re couched in ambiguous language.

Is the list exhaustive? Will duties be added to my job role without notice? Will I be compensated for additional job duties not listed? Does “supervise employees with minimal coding yourself” mean I’ll code for 2 hours a week? 10 hours?

You need to be as clear as possible in your communications with candidates. Otherwise, you may make them feel like they’ve been misled. Getting several sets of eyeballs on the listing is a good idea to ensure you’ve covered everything.

Additionally, removing ambiguity in your sentences will save you hours of correctional meetings or – curses to you if you spring this on an employee because of your communication mistakes – a performance improvement plan (PIP).

Contradictory information

During the interview (with the CEO), there was double talk about my junior status.

Sometimes, the employer would say that I was useless as a beginner, that I wouldn’t be efficient and that I’d be a burden on the company. This argument was used to negotiate down my salary and push me into taking the job, making me realize that I was already lucky to be offered anything at all.
On other occasions, the employer would say that the company was going through a crucial period in its development and that I was going to have to give my all to learn extremely quickly, because all the team’s strengths were needed and there was a lot at stake! (not very consistent with his idea that I was going to be useless for a year…)

Emilie, Junior Developer

There needs to be consistency between team members when describing the job to candidates.

This image is a four-panel meme featuring Gru, a character from the animated movie "Despicable Me". In the first panel, Gru looks excited and is holding a sign that reads "List working hours as flexible". In the second and third panel, the sign reads "During interview, tell candidate core hours are 9-5", and Gru has a mischievous expression with one eyebrow raised. The fourth panel shows gru looking at the sign confused.

This is often not intentional. If you or your HR team are reusing job templates, for example, and you forget to update some of the information, you may find yourself in this situation.

Like the unclear expectations above, this can be solved by proofreading your job listing and having a few other people review it to ensure the information is correct and up-to-date. 

Other times, though, this “tactic” is done to get candidates into the application process and then hope they don’t mind the bait-and-switch. Don’t do that.

If you’re struggling to get candidates because of policies that turn them away, raise that issue with your management and solve it rather than mislead the applicants.

Bad attitude

When I was looking for my first role, I went through a very long interview process. It took about eight interviews. It consisted of two initial, “get-to-know-you” interviews […] and then we transitioned into four different live coding interviews […] and then it ended with another two interviews where I met members of the team. I was finally told to wait for about a week to get a response and to see if I was a fit for the company. A week went by, I sent a follow-up email, got no response. A month went by… nothing.

Ricardo Tovar, Software Engineer

Extract from our Webinar “What Developers Hate Most About the Hiring Process & What Recruiters Should Do Instead

This one is simple.

Interviewing is often another thing that takes up time you don’t have, and it’s tempting to think of it as a burden.

However, if you treat interviewing like a chore rather than an exciting (if possibly exhausting) process, your bad attitude will make candidates extremely worried about working with you.

This goes for all aspects of the interview. Are you being polite when introducing yourself? Do you make them feel like a burden when they ask questions? Do you ghost candidates when they request application statuses?

Yes, finding well-qualified candidates can be challenging. But bringing a bad attitude to your interviews will only make that quest even harder.

No conversation

I was interviewing for jobs in SF before I actually moved there.  I had flown up to interview with this financial services company with a very famous CEO, and was pretty excited about it.  When I got to the interview, the first session was pretty easy, but the second session was the dreaded whiteboard interview, this time with a kid who couldn’t have been more than 1 year out of college.  His task: implement a LISP parser on the whiteboard… which sounds tough but really should just be some stacks/queues management.  Anyways, I couldn’t handle it in the moment and got zero help from my interviewer.  When it was over, he walked out of the room and talked to the person who was waiting outside to interview me for the next session, then they walked away.  A few mins later the recruiting coordinator told me I could go home.

Jonathan, Principal Engineer 

Building your product is a collaborative process that involves regular stakeholder feedback. So why would you have a technical interview where you’re just watching your candidate code?

The image is a three-panel meme that depicts a man in various states of isolation, meant to humorously illustrate the feelings of a person going through a one-way coding interview.

In the top panel, the man is sitting alone on a yellow swing in a playground, looking pensively to the side, away from the swing set. He is dressed in a light blue button-up shirt and dark pants.

The middle panel shows the man sitting alone at a small table in a dimly lit, empty room. He's leaning forward with his hands clasped, and his head is down, looking at his phone, which is the only object on the table.

In the bottom panel, the man is standing alone in an empty swimming pool, hands clasped behind his back, gazing down at the bottom of the pool. The pool has blue walls and there's grass and a few plants around, but no water or other people.

Across these three images, a text overlay at the top of the meme reads "HOW MY ONE-WAY CODING INTERVIEW FEELS".

Every interview you conduct should be an exercise in collaboration with the candidate. They will see you take a genuine interest in helping them do their best work, which goes a long way when it’s time for them to accept your job offer.

Remember: you’re not just interviewing them; they’re interviewing you, too. In addition to working with them through the interview questions, you’ll also want to ensure they have ample time to ask their own questions and that you have ample time to respond.

Asking inappropriate questions

No matter where you live, there’s a good chance there are a set of laws that bar discrimination against applicants based on their appearances or lifestyle choices – maternity status, religion, race, gender preference, and sexuality, to name a few.

If you ask the wrong questions in interviews about these areas, you can open your company up to many lawsuits. 

Apart from the legal ramifications, it’s just bad form to ask people questions about things (like their private lives) that won’t have any impact on their job performance.

It’s wise to avoid questions like:

  • How old are you?
  • When did you graduate high school?
  • Are you married?
  • Are you pregnant? Do you have kids?
  • Do you have any health issues?
  • What political party do you support?
  • Are you religious?

An interviewer’s job isn’t to analyze the private lives of their candidates; it’s to ensure that their skill set and working style are the right fit for your team. 

To sum up

The interview is not just a test for the candidate but also a reflection of your company. You should avoid poor preparation, evasive answers, irrelevant questions, excessive pressure, unclear expectations, inconsistent information, negative demeanor, and a lack of interactive dialogue. These errors can dissuade potential hires and damage your company’s image.

It’s a great idea to continue refining your interviewing approach, even if you already feel well-prepared, transparent, relevant, clear, consistent, positive, and engaging. Using candidate feedback, you can create a more attractive and effective recruitment process. This approach will help you identify the right talent and portray your company in a favorable light, making it a desirable place for top candidates to work.

]]>
https://coderpad.io/blog/engineering-management/these-9-red-flags-are-scaring-away-candidates-during-interviews/feed/ 0
Bridge Skill Gaps and Hire The Devs Your Team Needs with an Engineering Competency Matrix https://coderpad.io/blog/engineering-management/bridge-skill-gaps-and-hire-the-devs-your-team-needs-with-an-engineering-competency-matrix/ https://coderpad.io/blog/engineering-management/bridge-skill-gaps-and-hire-the-devs-your-team-needs-with-an-engineering-competency-matrix/#respond Thu, 18 Jan 2024 18:53:53 +0000 https://coderpad.io/?p=38336 Addressing skill gaps is crucial for team productivity and project success. 

In CoderPad’s 2024 State of Tech Hiring Survey, a key issue highlighted by almost 27% of the developers was their team’s lack of technical knowledge for implementing projects. 

This challenge often stems from non-existent or outdated skills tracking systems. Understanding and mapping your employees’ technical skills is essential not just for forming efficient teams but also for enhancing overall productivity by complementing skill sets.

So, how can you effectively identify and leverage the diverse skills within your workforce when assembling teams and designing career progression plans? 

The answer lies in the Engineering Competency Matrix (ECM)

This tool helps in accurately gauging and utilizing the technical abilities of your developers, ensuring that every project is matched with the right expertise.

What is an ECM?

At its simplest, an ECM is a table that displays a particular employee’s skill and skill levels. 

CoderPad Map’s skill matrix. You can see the list of skills (1), the skill levels (2), and the employee tags (3) for all the employees who have been assessed for those skills.

Skills

The skill can be any competency you want to measure or test for, whether cybersecurity knowledge, building apps with React, or database design fundamentals.

Generally, you’ll want to ensure you’re covering skill sets to cover a particular job role. For example, a full-stack developer might need to be competent in Angular, Node.js, and Postgres, while your DevOps engineer may need Azure, AWS, and Docker knowledge.

The decision as to what skills to track should be a collaboration between engineering managers, human resources, technical recruiting, and project managers to ensure that the needs of stakeholders are met for both identifying skills gaps for projects and creating training plans for individual employees.

Skill level

Generally, most skills are divided into junior/beginner, intermediate, and senior/expert levels. What you’ll need for a specific project will again depend on meeting with the stakeholders to determine the required technical skills.

Often, you’ll want to review skills to ensure you have a good mentor for more junior project or team members; having an ECM can help facilitate that by identifying the senior or expert members who can pass along their skills and experience.

Team members

Your employees should be listed somewhere inside the matrix so you can quickly identify their skill level.

The hardest part in organizing or creating an ECM is figuring out how to measure the skills of your employees. Self-assessments can be misleading, and you’re surely not going to pull out resumes from seven years ago and spend hours plugging them into a spreadsheet. 

CoderPad Map makes the ECM process easier by allowing you to send out user-friendly assessments to your team members and then generate the ECM for you based on their assessment results. 

✅ AG5 offers a great list of free skills matrix templates you can use or to get an idea of what your ECM might look like. 

How to use your ECM

As we’ve alluded to earlier, two of the most prominent use cases for an ECM are identifying skill gaps for training and putting together teams with complementing and necessary skill sets.

Put appropriate teams together

One of the biggest challenges of putting together a team for any project is 1) identifying the skills needed for the project’s success and 2) identifying who has those skills.

An ECM will help you identify who does and does not have the skills you’re looking for. Once you can identify the skills gap that’s preventing you from creating the super-team of your dreams, you can act on that in a few ways:

  • Move someone internally who has those skills onto the project team.
  • Find someone on the team who does not yet have the skill but has an aptitude for a similar skill and train them on it.
  • Find someone currently on the team who does not yet have the skill but wants to learn it and train them on it.
  • Start the external hiring process to grab someone from outside the company to add them to the team.
  • Alternatively, you can look at existing teams with experience working with each other, have most of the skills you’re looking for, and train them as needed.

✅ Hackathons are another way to discover hidden talent in your organization.

A good ECM should be easy to update and up-to-date, which means you should be assessing your candidates regularly, at least annually. There’s nothing worse than bringing someone on who has not used a skill you need in a very long time or missing out on a great team member with a skill because they’ve never been assessed for it.

Identify skills gaps for training

The other big reason to use an ECM is to help employees get a sense of their strengths and weaknesses so you can help them improve their own career outlooks; helping your employees grow their expertise shows a commitment to caring about employees’ professional development.

A good ECM will allow you to track a developer’s progression, showing you both what skills they struggle with and what ones they take to quickly. That will help open up potential career tracks they may have never considered or help them avoid ones they may not be a good fit for.

Additionally, using a before-and-after assessment method with your ECM will help you assess the added value of the training programs you use to upskill your employees. These programs are often expensive, and you’ll want a more effective metric than “Did they show up for the class?” 

Conclusion

An effective ECM will make a drastic difference in your project management processes and help retain employees by displaying loyalty to their career growth.

If you’d rather not dedicate the time to manually collecting employees’ skill sets and levels and creating your own convoluted ECM, you can use CoderPad Map instead.

CoderPad Map lets you quickly send pre-made technical skill assessments to your employees and automatically generates an ECM based on their results and job roles.

Learn more here.

]]>
https://coderpad.io/blog/engineering-management/bridge-skill-gaps-and-hire-the-devs-your-team-needs-with-an-engineering-competency-matrix/feed/ 0
5 Fresh Takes On How To Run A Successful Hackathon https://coderpad.io/blog/engineering-management/5-fresh-takes-on-how-to-run-a-successful-hackathon/ https://coderpad.io/blog/engineering-management/5-fresh-takes-on-how-to-run-a-successful-hackathon/#respond Fri, 08 Dec 2023 13:50:45 +0000 https://coderpad.io/?p=37513 Hackathons, once primarily associated with the tech industry, have become widely embraced across various sectors. 

These intensive, time-bound events offer an unparalleled opportunity for employees to collaborate, brainstorm, and develop innovative solutions to real-world challenges.

And employees like them – when they’re done right. 

I once participated in a hackathon that touted free food, free energy drinks, a chance to win an iPad, an Amazon Echo Dot consolation prize, and the “fun” of staying up for 24 hours to finish your project. Who wouldn’t participate in that hackathon?!

Of course, it was 2017 and, being this was at a large insurance company, the theme was basically “improve our insurance business” – the incentives needed to be big to get us to stay after work hours for a topic that wasn’t going to be impressing our neighbors anytime soon.

While I joined for the incentives, it was a rather enjoyable experience. I got to hang out with my favorite coworkers – and a few new ones as well; I got to work with technology I wouldn’t usually use, and I got recognized for my work even if we missed out on the grand prize.

Fast forward to 2023 at CoderPad, where we recently ran our first company hackathon, with our Vice President of Engineering, Nathan Sutter, leading the charge. It was a hit, with our employees saying things like:

“It allowed me to “scratch an itch” with a project I’ve been dying to work on.

“It was challenging yet exciting to mix things up and work on something that’s not my usual day-to-day work.

“It was great to get a real feel for how talented your colleagues are.

Nathan has helped compile a list of 5 tips to run a successful hackathon so you can hopefully experience some of the same great results we have, like:

  • Getting ideas for product improvements, and they’re usually minimally viable
  • Build up the confidence of employees who typically don’t provide input
  • Increase company cohesion by putting together teams and people who don’t usually work together
  • Improve employee morale and loyalty to your company

So, let’s begin.

Tip #1: Make it cross functional

One of the best ways to ensure the success of a hackathon is to allow employees from all departments to participate and to encourage them to create teams with others outside their typical working crews.

There are two reasons this helps make a great hackathon:

1) Employees love it because they get to work with people they usually don’t work with. Working with new people with backgrounds vastly different from yours that you don’t normally interact with is exciting.

2) When people with different backgrounds come together, they’re more likely to create projects that wouldn’t happen if they stuck with their regular team members. The ideas they generate will be more unique than if each team solely consisted of software engineers, accountants, or human resources personnel. 

Additionally, once the hackathon is done, a lot of these cross-functional relationships persist, which leads to increased company cohesion, collaboration, and increased information sharing, which can drastically reduce the adverse effects of departmental silos. 

How we did this at CoderPad:

To encourage cross functional teams, we required each team to have at least one non-coder member. In addition to our software engineers, we ended up with participants who were content marketers, product managers, UI designers, and copywriters.

To ensure compliance, we made a note of the rule in the Google form that teams used to sign up:

Form that asks who will be on the hackathon team and what the project will be.

Tip #2: Block time on the calendar during normal work hours

There are a few no-nos, but primary among them is only hosting the hackathon after business hours. 

meme. in panel one, person 1 says "we're going to do a hackathon next friday". in panel 2, person 2 says "great, ill cancel all my meetings!" in panel 3, person 1 just stares. in panel 4, person 2 says "it's going to be during work hours, right?"

If you’re expecting employees to come in after their typical workday, you either better make sure you have fantastic participation incentives and prizes, or you should expect very few people to participate. You’re also limiting your potential demographic of people who can attend – people with a family or other responsibilities outside of work will not participate.

When you schedule it during the work week, ensure the whole company is aware so that those participating can entirely focus on the hackathon project. Allow them to cancel or move meetings, and offer to pay for meals if the hackathon goes through breakfast, lunch, or dinner time.

You should also clarify to your product management department that there should be NO roadmap development during the hackathon. This ensures they plan a reasonable workload for the development team in their current sprints.

How we did this at CoderPad:

We laid out the timeline for our hackathon a whole month before the hackathon itself:

A sample timeline.

When we presented the hackathon plans at CoderPad’s weekly all-employee meeting, there were two beneficial effects:

  • People knew ahead of time when the hackathon was so they could move their schedules around accordingly.
  • People saw the senior leadership team’s excitement, encouragement, and buy-in, which helped encourage people to participate and be less afraid of building time into their schedules for the hackathon.

On the day of the hackathon, we had minimal issues with employees finding time to participate. 

Tip #3: Make the theme fun and motivating

Bad hackathon themes:

  • “Increase our profits.”
  • “Working harder: Improve productivity with minimal expenses.”
  • “Get our customers to stop complaining about us on social media.”

If you’re going to create a hackathon experience that will attract participants, you absolutely must avoid the profit-driven, unimaginative ideas that often come from the C-suite.

A better option?

Ask your employees! Have them submit ideas and then vote on the ones they think are the best. 

This is a great way to get employees to buy into the hackathon, which will help you increase your number of participants. Themes developed by peers seem much less “dictated” than those from senior leadership.

You’ll also be able to generate a much larger pool of ideas if you ask potential participants than if you rely on a small number of managers. AND they’ll know what is exciting and fun for them much more than leadership ever will.

How we did this at CoderPad:

We didn’t ask our employees for hackathon ideas – at least not the first time. For the first round, Nathan developed the theme “Use AI to develop a modification or extension to the Screen or Interview product.”

So this was more of a “lesson learned” for us, and we are currently implementing it as part of our next hackathon in December; here’s the form we used:

A google form that asks "what prompt would you like to see for the hackathon? multiple ideas welcome."

Tip #4: Reward the winners & acknowledge all participants

Recognition is the easiest and most apparent reward, but don’t be a cheapskate either.

Yes, fancy tech gifts will be more memorable. Nobody will forget when they won their hackathon and received a Roomba or a room-sized sound system. 

Even if your budget doesn’t allow for the newest Mac laptop, you can still give less expensive rewards like company swag, gift cards, PTO days, or eReaders (to name a few). If you need to figure out what to provide, have another poll where you ask employees what they’d like. 

You may not get something everyone likes, but you’re sure to get something that will encourage at least a few more people to participate.

Similarly, it’s a good idea to include participation rewards. These will obviously not be as nice as the awards for the winners, but it’s still a good idea to acknowledge hackathon participants with a small gift, given the effort they put into the hackathon. 

How we did this at CoderPad:

We gave each winning team member $100 to be used as they pleased.

The participation award is that we are actively implementing ALL the projects into our products, which you can read more about in Tip #5. 

Tip #5: Implement the projects

The best reward is having your hackathon project make it to the roadmap.  

Money is always good, but the fact that an idea you came up with makes it to the roadmap is the real reward – the potential to make the roadmap is the thing that excites them most.

This will take some planning and preparation from product and engineering leadership to ensure you have roadmap capacity for getting hackathon projects to production.

But it’s essential because implementing the hackathon projects into production is often a bigger reward than tangible rewards. Having independent contributor-driven ideas make it to production is hugely motivating to both want to participate now and in future hackathons.

How we did this at CoderPad:

Nathan and our Vice President of Product Frank Hauben, along with some input from other senior managers, made the judgment call on the project’s viability for integration into the roadmap. From there, it was just a matter of adding it to our product backlog and following our standard product development processes.

We added 6 out of 11 hackathon projects to our product backlog – more than we expected and a massive boon to our customers.

Conclusion

Hosting an intra-office hackathon is about stirring up the pot in the best way possible. It’s the kind of event that gets people out of their cubicles, mixing it up with folks from other departments, and actually having a good time while they’re at it. Imagine that—a work event you’d want to stay late for!

An inclusive theme that resonates with the team, recognition of effort, and rewards that reflect appreciation, all contribute to a compelling hackathon experience. These components are essential for drawing in participants and ensuring their engagement from start to finish. Moreover, the acknowledgment of every participant’s contribution reinforces a sense of value and belonging within the company.

The success of a hackathon is often best reflected in the tangible outcomes it produces. The integration of hackathon projects into the company’s product suite not only validates the event’s worth but also serves as a significant motivator for ongoing participation. It’s this transition from idea to implementation that completes the hackathon journey, leaving a lasting impression of achievement and innovation on both the individuals involved and the company as a whole.

Some parts of this blog post were written with the assistance of ChatGPT.

]]>
https://coderpad.io/blog/engineering-management/5-fresh-takes-on-how-to-run-a-successful-hackathon/feed/ 0
Yet Another Guide to Managing Remote Dev Teams: Happiness & Productivity Edition https://coderpad.io/blog/engineering-management/yet-another-guide-to-managing-remote-dev-teams-happiness-productivity-edition/ https://coderpad.io/blog/engineering-management/yet-another-guide-to-managing-remote-dev-teams-happiness-productivity-edition/#respond Mon, 20 Mar 2023 12:57:12 +0000 https://coderpad.io/?p=31988 1 out of 2 developers say they want to switch jobs.

That means that even in this environment of mass tech layoffs, half of your team would leave if given the right opportunity.

Given that only 15% of surveyed developers work entirely on-site now, there’s a good chance this includes your remote team members. 

Granted, most developers say they’d leave for a higher salary – something that is very often out of your control to grant. However, you can make it easier for employees to want to stay by simply being a good manager and helping them thrive in the workplace.

Many employees have stayed in a job not because they like it but because they like the people they work for. So here are a few managerial tips you can use to help your team succeed and be happy.

Over Communicate

Let’s be clear – there is a difference between over-communicating and nagging.

Nagging is a form of micro-management that reflects a lack of trust in someone’s ability to get something done.

Over-communicating is a communication style that recognizes that humans can be imperfect at transmitting information in a digital environment, and that’s compounded even further with remote work.

Can over-communicating come off as annoying? Sometimes. 

But what’s worse than over-communicating is having project delays because you forgot to remind someone of an upcoming deadline. Or having a great employee quit because you put them on a performance improvement plan when they didn’t meet expectations they weren’t aware of.

There’s no worse feeling than having unclear expectations or requirements and knowing you could easily meet them. While some of the onus is on individual contributors to confirm that they understand what you’re asking for, ultimately it is your responsibility to ensure they understand.

What’s that mean in practice for over-communication?

  • Spend time crafting your messages to ensure they’re clear, and be especially clear on any action items you’d like the receiver to take.
  • Ensure expectations are regularly communicated – not just during once-a-year performance reviews. 
  • If you’ve communicated something over voice or video, also write it down and pass it along to the receiver. Some people need that visual reminder for things to stick (plus, paper trails are always good).
  • Verify that people received your message – follow up and see if they have any questions about the message they received. 

Keep meetings to a minimum

Nothing pulls you out of the flow like a meeting. Individual contributors are not managers and don’t spend nearly as much time in meetings. 

So any meeting that does happen will significantly reduce the efficiency of these employees, as it increases the context switching they have to perform in order to do their jobs. In other words, they have to switch from “focus mode” to “meeting mode” and then back again, which takes time that could otherwise be spent on completing the task at hand. 

And let’s be honest, how much of the meeting has actually been filled with relevant, actionable information? You’re potentially wasting hours of your employees’ time by requiring them to attend unnecessary meetings to “keep them in the loop.”

The next time an issue or project arises, and you want to keep someone in the loop, first ask yourself these three questions:

  1. Does this person NEED to be at this meeting? In other words, will they be unable to do their job if they don’t attend?
  2. Will their time be better spent working on something else?
  3. Can this meeting be an email instead?

When in doubt, send an overly-communicative email. If things aren’t settled after a couple of responses, or the email thread starts growing uncomfortably long, schedule a meeting (and learn how to write more straightforward emails).

You’d be amazed at how much more productive your team becomes when you eliminate unnecessary meetings. Several companies are either designating “no meeting days” or simply removing meetings altogether.

Be flexible

Insisting employees work set hours might have been a thing in the 20th century, but it has no place in the 21st century.

Not only is this inflexibility one of the main reasons employees will leave your organization, but it’s also one of the main reasons remote work is so popular these days.

Seriously, which would you prefer: 

  1. Donning an uncomfortable suit and shoes and driving 30 minutes in rush hour traffic, spending 8 hours of the day staring at a screen, and then driving 30 minutes back home (in rush hour traffic) where you then have to scramble to get quality time with my kids/pet/significant other (or all of the above) and do cooking and cleaning chores to boot.
  2. Waking up, taking a walk, checking work emails, walking the kids to school, having morning meetings, petting the cat because meetings were stressful, knocking out the day’s work in three hours, taking a short nap, getting a jump on tomorrow’s work, then relaxing for the day with plenty of time to cook dinner and actually sit down and eat with the family.

One is stressful and leads to burnout. It also comes from a place of not having enough trust in your employees to be responsible with their time.

The other will keep employees happier and more productive. As a result, they’ll be less likely to leave your company for a less stressful one.

Things happen – kids get sick, pets need vet visits, spouses do yard work and accidentally chop through the internet cable – and it’s times like those that your team needs understanding more than a reprimand that they were gone for 20 minutes. No point in making already stressful situations more stressful.

Being flexible with letting your employees choose their hours demonstrates a level of trust that makes your team an attractive one to work with – making it harder for your team members to want to leave.

Bonus: Make time for fun things

No, work isn’t family, nor should it be.

But that doesn’t mean you should skip out on non-work activities, especially for remote workers who don’t have the traditional physical space for ping pong tables and free Friday lunches.

While offsites are nice, they’re often not in the budget. But that shouldn’t limit your ability to have some fun with your team.

For example, at CoderPad, we do things like:

Use your imagination, or ask your employees what they want. For example, see if they’d like to give a workshop for their particular hobby. Or take a group class in something completely unrelated to their day job.

So what next?

Being a great manager takes work, but the bulk of that work is just establishing enough rapport with your employees that you can empathize with them. 

Create this connection, and you’ll be able to understand their needs better and create an environment that allows them to thrive, even in a home office on the other side of the world.

Looking for other ways to be a great manager? Check out these resources:

]]>
https://coderpad.io/blog/engineering-management/yet-another-guide-to-managing-remote-dev-teams-happiness-productivity-edition/feed/ 0
No longer hiring developers? How to stay top of mind for candidates https://coderpad.io/blog/engineering-management/no-longer-hiring-developers-how-to-stay-top-of-mind-for-candidates/ https://coderpad.io/blog/engineering-management/no-longer-hiring-developers-how-to-stay-top-of-mind-for-candidates/#respond Thu, 23 Feb 2023 15:45:14 +0000 https://coderpad.io/?p=31122 Sometimes you stop hiring because you’ve just finished filling out your team.

Other times it’s because the C-suite has made tough decisions to cut the hiring budget, which means you can’t hire the people you want (or need).

Whatever the reason, it doesn’t mean that you should stop promoting your company as an attractive place to work.

Budgets won’t be cut forever, and teams aren’t immune to turnover. Eventually, you’ll either need to grow your team or replace members who have left.

But unless you’re taking steps to nurture relationships with prospective candidates even while you’re not hiring, you may miss out on picking up some highly qualified hires when you find openings on your team in the future.

Fortunately, you can do a few things to stay at the top of candidates’ minds, even if they’ve found employment elsewhere.

Be helpful on LinkedIn

LinkedIn is where you can be a resource for developers who need help getting hired – even if they won’t end up working with your company.

It may be counterintuitive, but posting open job positions for other companies you appreciate goes a long way to establishing trust with potential candidates – especially when they’re out of work and your company isn’t hiring.

You’ll also want to make sure you’re regularly posting helpful content. To establish rapport with potential candidates, you first have to get them to follow you, and one way to do that is to help them further their careers in some way. 

That could be the aforementioned job posting, or it could be a helpful engineering tip or some advice on how to be successful in an interview. And don’t forget to respond to the comments! Developers who see you take the time to respond to their questions will remember you the next time you post about a job on your team.

Another way to attract future candidate attention is by offering informal or mock interviews. An informal interview is more of a “networking” discussion where you help candidates understand what it’s like to work in a particular company, industry, or role. Mock interviews are more like simulated interviews, where candidates showcase their interviewing skills and get your feedback.

Both are ways you can make a name for yourself among potential dev hires and establish your own list of people you may want to reach out to when you get some openings on your team.

Speak at conferences

Just like posting on LinkedIn, participating in conferences is another way to establish relationships with developers that could turn them into your future team members.

The topics you could speak on are limited only by your imagination – you can talk about a tech topic you’re particularly good at or passionate about, you can offer “hacks” on how to get hired in specific industries or for certain roles, or you can talk about why you think ChatGPT should be allowed in an interview.

Being visible at conferences is a great way to get positive press for your company when they’re not hiring because you’re still showcasing it as relevant. You’ll increase your brand awareness, which will help potential candidates remember your company when you finally get around to posting open engineering roles.

And don’t forget to network! While this can be a struggle for many who lean towards introversion, it’s a worthwhile skill to develop. Networking allows you to establish rapport with potential candidates directly, and you may find yourself talking with people who can supply you with qualified candidates when you’re ready for them.

Publish thought pieces on popular websites

Don’t fancy yourself a public speaker? Writing thought pieces could be just as effective as speaking at a conference, given the right audience.

Just like with speaking at a conference, the topic is limited to your imagination. You have a bit more leeway because a time limit does not confine you, and you can more smoothly toss in other forms of media like videos, audio files, gifs, images, and links to other websites.

Memes, memes everywhere.

But before you start blasting your rant on why Node.js is superior to Java in every way to publishers, it helps to keep a few tips in mind:

1. Do your research

Know what people are looking up these days. While you may feel like writing about the 10 reasons COBOL will be making a comeback, if it’s not a trendy topic, then people won’t read it and you might as well be shouting in the dark.

You can use Google Trends to see what topics would get a lot of eyeballs right now. Or ask your coworkers what topics they’d like to see. Or keep an eye out on LinkedIn to see what topics in your feed are getting likes.

2. Find a good place to publish

Pretty much every website that publishes content regularly will have a contact where you can pitch ideas or submit drafts. Pick one that you read regularly or with an audience you want to connect with. For example, we’re big fans of Dev.to, which allows readers to filter content based on tags.

Alternatively, you can start your own personal blog and just link to that on social media.

And if your thoughts are under 140 characters, you can publish straight to Twitter/Mastodon/ the social media platform du jour.

3. Engage with comments

Writing on a relevant and meaningful topic will garner more substantial attention. Interaction with your readers will convert them from followers to potential new hires.

It’s the online version of networking, showing the readers that you’d be a great person to work with should you reach out to them in the future. The ones that ask thoughtful questions are the ones you’ll want to stay connected with – either on LinkedIn or through good old-fashioned calendar reminders.

So – what next?

As hiring budgets are slashed across the tech industry, more and more team managers will look for ways to stay connected with potential recruits to give them a hiring edge when business picks back up again.

While the tips we listed above will go a long way to helping you stay relevant to potential new hires in the tech world, they will help your own employability by showing off your management skills and ability to bring value to a company’s hiring process.

The underlying lesson in all this – it helps massively to stay connected to the tech community, no matter what your hiring needs are. 

If you need some inspiration for topics to write or speak on, feel free to check out some of these blog posts:

]]>
https://coderpad.io/blog/engineering-management/no-longer-hiring-developers-how-to-stay-top-of-mind-for-candidates/feed/ 0
The Environmental Impact of Digital Technology and How Software Eco-Design Can Help https://coderpad.io/blog/engineering-management/the-environmental-impact-of-digital-technology-and-how-software-eco-design-can-help/ https://coderpad.io/blog/engineering-management/the-environmental-impact-of-digital-technology-and-how-software-eco-design-can-help/#respond Mon, 17 Oct 2022 16:11:58 +0000 https://coderpad.io/?p=21118 We often have the impression that digital technology does not pollute. 

This is usually because software pollution is mainly invisible to the general public thanks to dematerialization (the use of the cloud or online word processing services, for example), which is ultimately only the decentralized materialization of digital services.

However, when we use these digital services, we utilize the 3-tier hardware architecture composed of:

  • Devices or terminals: computers, screens, smartphones, smartwatches, etc.
  • Networks: all the cables that allow the circulation of data, routers, relay antennas, etc.
  • Servers: including data centers.

Of all the sectors – transportation, textile industry, agriculture, etc.– the environmental footprint of the digital industry is the one that is growing the fastest on a global scale, notably linked to :

  • 4% of greenhouse gases (GHG) in 2020 [1].
  • 10% of the world’s electricity usage [2]
  • A 9% annual increase in electricity consumption [2].
  • The increasing flow of electronic waste – growing at 4% per year and per person [3]
  • Increasing data traffic (25% growth per year), leading to growing development of network and server infrastructures [5]
  • An economic sector that is expected to double its GHG emissions by 2025 compared to 2020 [2].

To further show the environmental impact of technology, it’s been shown that a 2G electronic chip found in your phone, printer, laptop, tablet, etc., requires 32kg of natural resources to produce. More and more of these chips (and others) are needed to power our electronic devices each year [4].

According to a study conducted by ARCEP and ADEME in January 2022 [6], the carbon footprint of the digital sector in France would be 17 Mt CO2eq (mega tonne CO2 equivalent), i.e., 2.5% of the national footprint, distributed as follows:

  • 79% for terminals
  • 16% for data centers
  • 5% for networks

Understanding the magnitude of the problem is essential to realizing the necessity of levers to reduce the environmental impact of digital technology. 

Apart from environmental issues, digital technology poses other problems, particularly social ones. The disparity in access to digital tools is known as the “digital divide.” 

To put numbers on the digital divide: 3.7 billion people do not have access to a broadband network, and 87% of people in developed countries have access to the Internet (compared to 19% in developing countries) [7]

This is generally due to lacking infrastructure, which implies a lack of access to information, education, communication, etc.

These social problems are also exacerbated by the mineral resource requirements that feed our digital economy.

The mining for these minerals tends to be in countries where geopolitical tensions exploit local populations in disastrous conditions. 

For example, 60% of cobalt mining is carried out by children in the Democratic Republic of the Congo [8]. It also pollutes the clean surrounding water, rendering it undrinkable for anyone living near the mine [9].

The need to reduce digital technologies’ impact on the environment and humanity cannot be understated. This article will explore ways we can do just that through intelligent eco-design. We’ll also explore the benefits that it can bring to a business and its customers.

Fundamentals of software eco-design

Before we discuss implementing measures to reduce the impact of digital technology, we first need to go over some basic eco-design concepts. 

Digital services

A digital service meets a specific need, has one or more functionalities, and a set of users. It is considered a combination of the following:

  • Equipment that enables data to be stored, manipulated, and displayed: servers, terminals, boxes, etc.
  • Infrastructures that host and connect the equipment: networks, data centers, etc.
  • Several software packages stacked on top of each other that run on the different devices.
  • Other possible third-party digital services.

Eco-design

The principle of eco-design is to consider the system’s environmental impact from the design phase, with the aim of reducing this impact throughout the product’s lifecycle.

The eco-design of a digital service necessarily takes into account the following points:

  • The definition of the functional scope: which features add value, avoid useless widgets, which data and processing are beneficial, etc.
  • All stages of the lifecycle and associated equipment: manufacturing, installation, distribution, use, and end-of-life (recycling, reuse, dismantling, etc.)
  • Several environmental indicators: resource depletion, pollutant emissions, water consumption, waste production, emission of substances contributing to climate change, etc.
  • The three tiers of the architecture: terminals, networks, and data centers
  • The implementation of a dialogue with stakeholders
  • Progressive and continuous environmental improvement without transferring pollution or impact

In the digital domain, as we have seen previously, the primary source of impact is located at the terminal level – essentially in the manufacturing phase–representing about 80% of the impact.

It is therefore essential to optimize and size digital services as much as possible to increase the longevity of terminals. This is to avoid their renewal and to make infrastructures more profitable in terms of space, power, and consumption of resources in general (the weight of software has been multiplied by 171 in 20 years, according to the Green IT collective [10]).

Levers of optimization

Optimization levers are those aspects of a digital service that we can change to reduce or contain the service’s environmental footprint. They include:

  • The definition of the functional scope: which features add value, avoid useless widgets, which data and processing are beneficial, etc.
  • The usage, sizing, and solicitation of the associated physical equipment.
  • The necessary equipment and infrastructure and their sizing.
  • The software layer and its optimization.
  • The use of software best practices and the use of measurement tools (which we will explore later).
  • Communication with stakeholders to better define functionalities and needs via the UX approach (for example).

ℹ No product is completely “green” or “clean.” We can reduce the impact of our products and activities, but that doesn’t make them suitable for the planet. It is mainly a question of making our tools more efficient (less consumption for the same use) and questioning our services to keep only the essential and remove the nonessential. The notion of eliminating the unnecessary is not a substitute for efficiency and vice versa.

Of course, the objective is not necessarily to deprive ourselves or to cut back on certain uses, which is up to each individual. The aim is to adapt our consumption to our actual needs.

Impact transfer

Impact transfer is when impact improvements are made at one stage of the life cycle, implying adverse effects at another phase of the life cycle.

For example, 5G has a lower carbon footprint (between 7 and 35 kWh/user/year) on paper than 4G (50 kWh/user/year) [11], but requires the installation of more antennas than 4G and allows more devices to be connected, thus leading to a rebound effect (Jevons paradox) by indirectly increasing the number of connected devices.

As humans, we have a cognitive bias that pushes us to use the resources offered by a system to the maximum. In this case, that puts additional pressure on data networks by increasing the data flows, which in turn requires more infrastructure to manage these flows, and so on, in a vicious cycle.

In an eco-design approach, it is necessary to conduct a life cycle analysis to consider the notions of impact transfer and rebound effect to make the best possible design choices.

Reasons to choose eco-design

There are many different reasons to start an eco-design approach:

  • It eliminates nonessential elements, making services more efficient
  • Simplifies the UX and makes it more fluid, improving accessibility
  • Saves time and money by reducing costs (energy, consumables, cost to society, etc.)
  • Encourages companies to develop a CSR (Corporate Social Responsibility) strategy
  • Improves brand image
  • Brings more meaning to an employee’s work, therefore reducing burn-out and improving well-being at work
  • Develops a longer-term vision for the products
  • Attracts new clientele, thus increasing sales
  • Creates a network of partners with the same desire to reduce their environmental impact and thus influence others to adopt a CSR strategy
  • Attracts potential investors (especially related to the establishment of a CSR strategy) 

These reasons aren’t just musings of a philosopher – real numbers back them. According to the 2014 study presented by France’s Agence de la Transition Écologique (ADEME) [12], an eco-design approach:

  • Increased margins of eco-designed products by an average of 12%
  • Improved at least two functional aspects of the studied products (ease of use, cheaper, more sustainable, etc.)
  • May improve profitability. Some indicators of the intensity of the eco-design approach are associated with higher profits. Thus, the more the company takes into account a large number of stages of the product life cycle in its eco-design approach, the more monetary gain it may see
  • Increased employee motivation (58% in the EU)
  • Easier to recruit employees
  • Improved innovation capacity

According to the 2020 GreenConcept study [13], it would be possible to drastically reduce the environmental impact of digital services: 85% less energy consumption, 63% less water needed, 40% fewer material resources, and 58% less greenhouse gas emissions. 

Case-in-point: LinkedIn and IBM have managed to reduce server processing time by a factor of 100 by eco-designing their digital services [14].

Finally, eco-design allows you to identify new axes of value creation for your products and offers a triple benefit to your company:

  • Increased assets by increasing the value of the company through improved brand image and product design 
  • Enhanced customer relations by responding better to their expectations and offering more innovative products
  • Improved ethical standing by adding social responsibility as a company value (i.e., CSR)

Reminder: CSR is not based on “good deeds” or “philanthropy” but aims to transform companies’ core business models and processes.

Putting software eco-design into practice

You will see that from a technical point of view, eco-design only requires the common sense of the developer. The advantage is that we already have all the tools.

Hosting

The choice of your web host can be important in reducing your environmental footprint. Indeed, behind each hosting option, many servers need to be powered 24/7/365. 

According to Science magazine [15], web hosting servers alone represent 1% of the world’s electricity consumption. This may not seem like much, but also consider the following:

  • 10% of the world’s electricity is used for ICT (Information and Communication Technologies) [2].
  • Electricity usage for digital technology is increasing by 9% every year [2].
  • The digital services industry is expected to double its greenhouse gas emissions between 2020 and 2025! [2]

A significant portion of this energy expenditure is the cooling needed to ensure that servers function optimally, protect them from failure, and thus ensure their longevity. Cooling consumes up to 40% of the total energy required to run a data center [16].

Calculating the exact environmental footprint of a server is very difficult, given the variety of criteria to be taken into account, the diversity of methodologies used to calculate it, and the lack of publicly available data [17].

We can nevertheless estimate that manufacturing a server emits about 1 t CO2eq. This doesn’t account for abiotic resources (non-living resources: air, water, minerals, etc.) and any environmental destruction that results from obtaining those resources.

What can be done about it?

There is a lot you can do to ensure your hosting service has minimal impact on the environment:

  • Use a “local” hosting company for your end users to limit the distance traveled by the data (15,000 km on average, according to ADEME).
  • Choose a hosting company that communicates its environmental impact and makes commitments like OVH (France) or Infomaniak (Switzerland).
  • Check the PUE* of your host. The closer it is to 1, the better (the European average is 1.46). OVH has a PUE between 1.1 and 1.3 (variable according to the sites); Infomaniak’s is slightly lower than 1.1. These two hosts have an excellent PUE.
  • Prefer hosting providers with passive cooling systems to limit energy usage.
  • Prefer hosting companies that use low-carbon electricity, but beware of “green” energy certificates (you can buy a “green” energy certificate). 
  • Find out about your host’s hardware renewal practices (ex: Do they use reconditioned equipment, components, etc.?).
  • Utilize shared server offerings to avoid having a dedicated server. This way, you reduce the environmental footprint of your hosting, which is divided among the different users of this shared offer.
  • Eco-design your applications. This allows you to take up less space and resources on the servers.

*PUE: for Power Usage Effectiveness, used to measure the energy efficiency of a data center, it is calculated by dividing the energy consumed by the data center by the energy consumed by the equipment (servers, air conditioning, network, etc.)

Use benchmarks

An excellent way to get started in software eco-design is using best practice frameworks, which save you time in finding ways to optimize your code or the choice of hosting.

In France, for example, we have many frameworks that have emerged:

Some of these best practice frameworks will only address the code aspect; others will also discuss hosting management and UX. Still, overall they present many of the same eco-design principles.

Measurement tools

As the saying goes: you can’t improve what you don’t measure. Indeed, how can we know the critical optimization levers when we have no metrics?

Fortunately for us, many measurement tools already exist. The list I’m going to give you is not exhaustive, but are the ones I use most often:

  • Bundlephobia to check the size of the NPM dependencies you want to add to your project, and their download time
  • PageSpeed Insight for the performance of your sites. It also lists the points to correct to improve the performance of your site
  • GTmetrix, like PageSpeed Insight, uses Google LightHouse metrics for performance indices but uses a non-emulated browser, unlike PageSpeed
  • Website Carbon Calculator to measure the carbon footprint of your site
  • GreenIT-Analysis (currently available only for Chromium browsers) works with an “EcoIndex” calculated from different parameters such as the number of HTTP requests launched, the resource compression rate, image optimization, etc. (this topic will be discussed in the next section)

All these tools are free, don’t hesitate to use them!

Some technical recommendations for software eco-design

Eco-design requires taking into account physical environmental constraints. This is primarily done in the project’s design phase by considering the user experience (UX). 

UX and eco-design also require optimizing interfaces and taking into account accessibility (which also takes into account the loading time of your application on a 2G mobile phone, for example) and requesting as little data as possible. It is also necessary to eliminate superficial functionalities to avoid unnecessary processing.

Technologies are also chosen during the design phase. The 2017 study Energy Efficiency across Programming Languages (R. Pereira et al. [18]) studies energy, time, and memory consumption according to the languages. Here is a summary table:

The 2017 study Energy Efficiency across Programming Languages (R. Pereira et al. [18]) studies energy, time, and memory consumption according to the languages.

We can note that some languages are much less greedy than others in terms of resources, but this does not mean we should systematically turn to them.

Indeed, the choice of a language is not only based on its raw performance but requires the study of other parameters such as :

  • Maintainability: will someone be able to take over the project after it’s complete? Does the job market have competent developers in this language? What is the technical environment in which this project will run? Etc.
  • Language competencies of the project team: let’s say that Node.js is more adapted to an upcoming API project. If the rest of the team is only competent in PHP, it might be better to stay with PHP or opt for a PHP framework (Symfony with API Platform, for example) even though Node may be the “better” language.
  • Appropriateness to the project: Some languages are better than others at dealing with a particular task. For example, Python is more adapted than PHP for a Machine Learning project.

More importantly, how technology is implemented can impact the environment more than how it is used in isolation.

There are a lot of simple tips you can use – many of them found in the references I’ve sprinkled throughout this article – to help you minimize the impact of your digital service implementations:

  • Reduce the size of the images, and avoid using them when they are unnecessary.
  • Avoid videos as much as possible or reduce their quality, and do not activate automatic playback when possible.
  • Think mobile-first. This approach avoids loading content for desktop browsers when unnecessary (because we tend to put more elements on desktop than mobile).

Moreover, a smartphone (which accounts for 60% of web browsing [12]) has a power consumption of between 2 and 15W for charging, while a laptop has a power consumption of between 20 and 75W, and a desktop is between 70 and 250W [13]

  • Utilize for loops (with ++i) rather than forEach loops. While it ultimately depends on the context and readability constraints, it is better to opt for a for each loop if the code becomes too complicated to read or understand. Code that is difficult to understand is code that is difficult to maintain and evolve, which can contribute to technical debt, contrary to the principles of eco-design. 

ℹ You can learn more about for and forEach loops in these blog posts about the JavaScript some() method and JavaScript array methods.

  • Reduce the size of the DOM as much as possible since it is cumbersome to handle. In web applications, avoid using JavaScript as much as possible, especially for animations – use CSS instead if you can. 

ℹ Read more about CSS filtersCSS gridCSS math functions, and CSS pseudo-classes.

  • Limit the number of HTTP requests and optimize/group them as much as possible 
  • Limit the number of SQL JOIN operations and sub-queries. These are very greedy in terms of server resources and response time. Of course, this is often dependent on the architecture of your database.

ℹHow to Optimizie Query Performance in MySQL Databases.

  • Serve static pages rather than dynamic ones.
  • Use caching as much as possible, especially for assets (images, CSS, JS), and define a long enough caching time according to usage.
  • Enable server-side file compression (Gzip, minification).
  • Use tree shaking, available, for example, with Gulp or Webpack.
  • Avoid using non-standard fonts, or if you must use them, try to choose the lightest fonts possible, and use readable fonts for people with reading disorders (accessibility).
  • Use lazy loading.
  • Avoid SELECT * in a database. Specify the names of the columns to return instead.
  • Ask for as little data as possible to make the program work. Not only is this an eco-design concept, but it’s a privacy/data protection one as well. For example: do we need the user’s first AND last name? 
  • For Content Management Systems (CMS), deactivate and uninstall useless modules.
  • Optimize your application’s algorithms as much as possible by evaluating their complexity to reduce them.

✅ If you couldn’t tell, eco-design is also compatible with the Agile methodology! By really focusing on what brings value to the customer and evaluating useful enhancements, agile development can help reduce the energy overhead associated with developing unnecessary product features.

Eco-design is the future of software development

Eco-design is nothing more and nothing less than the global application of good programming and design practices that allow you to improve the performance of your web applications, all the while keeping in mind that our world obeys physical laws with limited resources that are not necessarily renewable on a human life scale.

By applying these good practices, your company will see its image enhanced with your customers, potential investors, and – more importantly – your employees. The more your employees are trained in eco-design principles, the higher the intensity of implementing eco-design in products, the more quality will be present, the more your customers will be satisfied, and the higher your profits will be.

In addition, by eco-designing digital services, we can reduce the amount of processing required and extend devices’ lifespan, thus reducing our impact on the planet’s resources and the energy needed to operate them.

Nevertheless, it is essential to keep in mind that despite the positive indicators that emerge from various studies on eco-design, they may be biased, especially due to the relatively small study samples. For example, the 2014 study [14] is based on a sample of about 100 companies across the EU and Canada. Moreover, the concept of eco-design is relatively recent. 

Adopting eco-design at scale cannot be done in a snap of the fingers. Even if it is not a magic formula to boost your business, it is of undeniable interest in your digital services’ environmental impact, user experience, and performance.

Here I’m going to risk paraphrasing Jean-Marc Jancovici [15], but a world of service jobs is not a world without hardware – quite the contrary. Digital service jobs depend on the presence of machines because there are a lot of flows to manage (notably of information and people), and the more the flows increase, the more people are needed to deal with them (thus more machines, and so on).

Thanks for reading!

I’m Thomas Laure, a French junior IT engineer who loves solving problems regardless of the technology used, not only in tech, and passionate about many scientific topics and philosophy.

]]>
https://coderpad.io/blog/engineering-management/the-environmental-impact-of-digital-technology-and-how-software-eco-design-can-help/feed/ 0 5 - Les économies d'énergie - Cours des Mines 2019 - Jancovici - [EN subtitles available] nonadult
A Holistic Guide to Diversity and Inclusion in the Technical Hiring Process https://coderpad.io/blog/interviewing/a-holistic-guide-to-diversity-and-inclusion-in-the-technical-hiring-process/ https://coderpad.io/blog/interviewing/a-holistic-guide-to-diversity-and-inclusion-in-the-technical-hiring-process/#respond Wed, 22 Jun 2022 17:38:04 +0000 https://coderpad.io/?p=8010 Today, diversity and inclusion present a major opportunity for the tech industry. Research shows that a diverse workforce leads to higher performance and more resilient companies — and we’ve all got room to improve where representationpay, and hiring are concerned. 

A 2021 survey of over 2,000 early-career tech workers and 270 business leaders by market research firm Wiley revealed that 68% of polled businesses feel there isn’t enough diversity in their tech workforce. Nearly a quarter said they didn’t know how to address the issue.  

Creating a more equitable workplace requires a concerted effort from the C-suite down to recruiting. Hiring, in particular, is a significant source of concern. 65% of HR specialists, hiring managers, and IT leaders believe recruitment for technical roles has issues with bias. 

So what should we do about it — and how can growing organizations lead the way? 

This guide outlines a set of best practices to make the best possible hires and promote a diverse, representative workforce.

Contents

  1. Source broadly
  2. Assess on-the-job skills, not just CVs
  3. Interview inclusively
  4. Evaluate and evolve your process
  5. Invest in a robust onboarding and engagement plan

Source broadly

The pandemic forced a shift to remote work that has also normalized some hiring practices that are suited for more diverse and inclusive recruiting. Sourcing candidates from all over, instead of just a few expensive metropolitan areas, has helped companies grow and opened opportunities for more workers. 

But geography is just one piece of the puzzle. Candidate sourcing must go beyond traditional channels like college campus recruiting and alumni boards. The talent is out there. Sample data from interviewing.io — a platform that facilitates skills-first, anonymous interviewing with companies ranging from Lyft to Dropbox and Quora — showed that 40% of hires came from non-traditional backgrounds.

Instead, your sourcing should focus on networks that serve diverse candidates and prioritize community engagement.

In college recruiting, for instance, the advent of virtual career fairs means recruiting students from a wide array of backgrounds is possible regardless of geography. With access to students from community colleges, historically black colleges and universities (HBCUs), or programs in economically developing nations, leveraging virtual career fairs adds a new dimension to your sourcing.

Aside from campus recruiting, seek out non-academic channels like bootcamps and workshops. You can also partner with programs like YearOne, an organization that specializes in helping early-career software engineers of all backgrounds gain experience. Other job boards and community organizations include Lesbians Who TechOut in Tech, and Black Girls Code

Consider community events like hackathons, too. These can be an invaluable tool in recruiting by exposing your company to a huge amount of potential engineers and offering a real-time view of their skills. Online hackathons provide instant access to as many as 2,000 coders in a single day while leaving the biases attached to university affiliation or location at the (virtual) door.

Lastly, although referrals are a part of every recruiting team’s toolkit, you should be careful not to base too much of your hiring on internal networks. Referral systems can impede broader DEI goals; according to research from Glassdoor, the percentage of BIPOC referral candidates in the IT sector has decreased by nearly 20% since 2010. 

Assess on-the-job skills, not CVs

With each passing year, the CV’s shortcomings become more apparent. In fact, CoderPad’s industry-wide hiring survey found that almost 60% of recruiters are ready to say goodbye to resumes altogether.

Relying too heavily on resumes is not only inefficient for tech organizations, but it’s also an engine of bias — and new AI sorting systems only make the problem worse. A University of Pennsylvania report highlighted that Black professionals in today’s employment marketplace receive 30% to 50% fewer job call-backs when their resumes contain information tied to their racial identity.

To remove unconscious bias at the top of your hiring funnel, use a skills assessment first. An assessment will tell you whether the candidate has the necessary skills for the role, without bias to whether they went to the “right” school or worked at the “right” companies. 

With testing platforms like the CodinGame Assessment, you have the option to anonymize assessments by removing candidates’ personal identifying information. 

One last tip: even if your assessment provides a score, you shouldn’t use it as a ranking system or give preferential treatment to high-scoring applicants. Instead, it’s best to view the assessment as a pass/fail screening mechanism.

Interview inclusively

When it comes time to interview, strive to create an inclusive experience for every single candidate who passes the skills assessment. 

💡 Check out our guide for hiring managers on interviewing front-end developers.

The first step lies in getting the format right. If your goal is facilitating consistency and an equal playing field, your company’s first-round interviews should take place by phone, not video. 

While the COVID-19 pandemic has made Zoom calls the norm, they can be yet another facet of unconscious bias. Do all candidates have a stable internet connection? Is everyone able to find a quiet, calm environment on short notice? Switching to phones lessens these imbalances while mitigating long-standing “appearance biases.”

Next, schedule a CoderPad live interview that allows interviewers and candidates to collaborate in real-time. Why choose the live interview over whiteboards? Over the last few years, it’s been proven that whiteboard-style interviews exclude candidates who struggle with time limitations. They also put undue stress on engineers. A study conducted by North Carolina State University and Microsoft suggests that “qualified job candidates are being eliminated because they’re not used to working on a whiteboard in front of an audience.’

With a live interview environment, however, you can gauge a candidate’s real skills and assess how they perform in a way that more closely resembles day-to-day work. To ensure your live interview lets candidates do their best work and promotes fairness, follow these tips:

  • Ask questions geared toward the skills of the job, not knowledge of your company’s specific product and market.
    • Think about it this way: If you were hiring a store manager, would you be more impressed if they knew every piece of inventory or if they had excellent interpersonal and organizational skills? 
  • Create space for candidates to brainstorm during interviews without being watched; this alleviates the pressure of a timed interview where candidates feel like every moment of downtime is a tally against them.
    • CoderPad offers a feature called Focus Time that pauses video and audio and gives candidates 5 minutes of quiet time. Research shows this type of break can help candidates perform their best.
  • Structure hiring panels to include and represent diverse employees and encourage interviewers to share values of inclusion and community proactively.

Evaluate and evolve your process

Designing for diverse, inclusive hiring isn’t a one-off effort. It’s an ongoing, living process. To continue improving, document your progress and constantly seek feedback from as many stakeholders as possible.

Your documentation and measurement processes should incorporate feedback from

  • 3rd parties, such as HR professionals who can assess questions objectively
  • Underrepresented employees from within your organization; however, you should still make it a priority not to overload already-busy team members 
  • Candidates who have gone through the process themselves
  • Interviewers 

In addition to collecting feedback, you should also measure your throughput at each stage of the hiring funnel. That way, you can clearly pinpoint where candidates fall off. These passthrough rates ultimately identify hidden biases within your funnel. For instance, if only a small percentage of underrepresented candidates make it through the phone screen, you should re-evaluate your questions and criteria.

The best way to keep building up inclusive practices is to document feedback, notes, and best practices centrally. With tools for asynchronous collaboration like Notion, you can keep the momentum up and track comprehensively even as your funnel reaches higher volumes.

Above all, don’t be afraid to change your process — even if it takes time and money to do so.

Invest in a robust onboarding and engagement plan

A 2021 report on diversity in tech found that “50% of 18- to 28-year-old employees left (or wanted to leave) tech or IT jobs because they felt unwelcome or uncomfortable.” This number was even higher for Asian, Black, and Hispanic respondents, who cited their identity as the top reason for feeling excluded.

New employees of all backgrounds need to feel a sense of belonging from day one. But that doesn’t happen spontaneously. To help new hires feel like part of the team right away, you should invest in a structured onboarding plan featuring built-in engagement activities. 

When it comes to onboarding, many organizations find there’s no such thing as too much planning — and for good reason. Survey results show that companies with standard onboarding training increase their new employee retention rates by 50%. Whether it’s pair programming sessions with senior engineers, virtual happy hours, or designated buddy systems, it takes time to foster familiarity and psychological safety. After all, healthy company culture means walking the walk when it comes to work-life balance.

Although you may want to expose potential hires to team members of all backgrounds, you shouldn’t put too much of the hiring responsibility on underrepresented individual contributors. Instead, integrate cross-organizational activities into your onboarding plan to establish a sense of community that goes far beyond the final interview.

Diversity makes us all stronger. Research from McKinsey proves that companies in the top quartile for diversity also outperform financially. It starts with an inclusive technical hiring process that prioritizes a candidate’s true on-the-job skills — not whether they went to the same schools or worked in the same companies as your existing workforce. 

We all have plenty of work to do to make technical hiring less terrible and more fair–so let’s get to it!

]]>
https://coderpad.io/blog/interviewing/a-holistic-guide-to-diversity-and-inclusion-in-the-technical-hiring-process/feed/ 0