InRhythm developer Brian Johnson recounts a tale of character encoding horror in a Python 2 application. His debugging investigation revealed several incorrect assumptions about how character encodings work, both in Python and on the Web.
Your partners in accelerated digital transformation
InRhythm developer Brian Johnson recounts a tale of character encoding horror in a Python 2 application. His debugging investigation revealed several incorrect assumptions about how character encodings work, both in Python and on the Web.
From Mike:
“Nightmarish APIs, we’ve all been there. They’re difficult to work with, hard to scale and hurt team productivity. With GraphQL, Facebook’s emerging successor to REST all that can be a thing of the past.”
Last week, we hosted 20+ leaders of engineering teams for our first event in our new innovation center, 10x Engineering Manager Bootcamp. The need for this workshop came from witnessing how complex it can be to manage engineering teams in agile environments. It’s designed to enable leaders within an organization to lead their teams more efficiently by identifying common obstacles and equipping them with best practices to enable a stronger team. Some of the larger takeaways include thoughts on mindset, time management, people management styles, hiring, and learning and growth.
One of the most well-received takeaways was around the traits of a true 10x Engineering leader. In summary:
10x Engineering Leaders have a high-velocity, high-impact mindset
For 10x engineering leaders, the number one goal is to get results. Great talent with expertise in modern technologies is crucial, but it means nothing if a team does not execute efficiently. Agile teams are supposed to be ‘self-managed’, but the burning question is still “what is your team’s impact”? Enterprises run on results. On the backend, leaders must swiftly navigate many conflicting forces and learning to accept that you can’t please everyone. At the end of the day, teams are measured by ability to get results, attract and retain talent and staying relevant, and massive action with a high sense of urgency always wins.
10x Engineering leaders take complete ownership of priority 1s
Enterprise software development is constantly VUCA (Volatile, Uncertain, Complex, Ambiguous) and it can be easy to get lost in the day-to-day. 10x leaders remain aware of priority 1s and before the day is over, they make sure to spend time working on them. They create maniacal focus to maintain momentum.
10x Engineering leaders practice the art of communicating, delegating and negotiating
Most 10x engineering leaders are very good at communicating upwards, downwards and across. This is imperative, because delegating and negotiating are extremely challenging without strong communication skills. These three areas can be detrimental to a team if they are not done properly. Put mechanisms in place to ensure your team can operate independently and hold your team accountable.
10x Engineering leaders know people management should exceed project management by 4:1
People management is grooming and growing your people so that they can do their jobs better. 10x leaders become masters of growth, coaching and inspiring intrinsic motivation. They spend time leading their teams and enabling them to better support the organization and they remember to feed the winners. Being able to identify and invest in the stronger members of your team, versus the weaker, is an invaluable lesson. Giving a “winner” your time will result in 10X returns, as time is your most valuable currency. Giving that same time to a lower-performer may not return dividends.
10x Engineering leaders stay relevant and own technical debt
Technical debt is not something you can pass from technical teams to the product team, or any other part of an organization. 10x leaders spend time addressing the problems and focus on creating solutions to reduce this debt today and in the future.
10x Engineering leaders are cultural catalysts
Culture may start from the top, but 10x leaders are true engines of the company. Their focus ensures they do not get fall into the trap of the victim mindset or solely taking orders from above. These leaders understand the culture and have the unique power to solicit change from the organization.
Watch for more key learnings coming out of this powerful session soon!
[huge_it_slider id=”3″]
Last week, driven by the feedback from our engineering leadership team, we held InRhythm U’s first-ever Code Lounge, inviting everyone from across the company and a few external guests to learn new skills, brush up on existing ones, or just get help on a personal project.
Code Lounge featured technical “stations” for Angular, React, React Native, Express, Vue, Node.js, Java, QA, UX and Product, each led by an InRhythm senior developer instructor. Accompanied by food and drinks on the company, the event provided an easy atmosphere and low-key way for everyone to network and learn a thing or two!
Here are a few key takeaways and learnings from Code Lounge:
At InRhythm, our goal is to give our people the best opportunities for learning and growth. This goal is something I feel very passionate about as do all our senior leaders across the organization. Code Lounge is just one example of how we keep our company culture and ourselves at the top of our game! If you want to find out more, visit us at www.inrhythm.com.
It shouldn’t come as a surprise that how a company conducts its interviews has a big impact on its growth and success. Quality people make a quality company! When vetting our future employees, we want people who share a common passion and live our values and culture.
Many interviews follow standard templates of questions and lack real engagement with the candidate. Going through the list of questions, interviewers will evaluate a score for the candidate. Based on the score cutoff, the candidate is either in or out. We recommend taking a more holistic approach. What might that be, you ask? To start, it’s easier said than done, but it’s way more effective.
Here are a few suggestions my InRhythm Mentor gave me to help me distinguish a good candidate from a great one and get the most out of my interview:
Beyond these tips and based on my experience, a good interview experience has a huge bearing on whether a candidate accepts the offer or not. With this in mind, here are a few guidelines on what not to ask:
Some not-so-great questions would be:
Question 1: Implement red black tree.
Question 2: Explain Java memory model.
Question 3: Explain a few design patterns.
These are great theory questions, but they may not always be suitable in an interview. For example, if the candidate doesn’t answer the first question or has trouble with the answer, does it make him or her a bad engineer? The second question is very theoretical in nature with limited practical use. Since many candidates prepare for this question, does it really serve a purpose?
Question 3 is better asked when masqueraded as a real life problem. Instead of “Explain a few design patterns,” one should ask the candidate to “Design a shopping website like Amazon.com.” This is a great interview question because: