The Self Made Man

I’ll save you some time, it’s a myth.

Sure, we use the phrase and hand it out as a badge of honor for those who have attained some level of success, but it means nothing. Success is not a solo pursuit.

If you measure success by money, you had customers who paid you.

If you measure by family, you have people who choose to love you.

If you measure by fame, you have fans who cheer for you.

None of it can be accomplished alone.

As I reflect on the last 3 decades of my life, I’m quickly reminded of

  • sacrifices people made for me
  • couches I surfed
  • advice I’ve received
  • chances people took on me
  • mistakes people have tolerated
  • wise words people have shared
  • encouragement I’ve received
  • patience and grace shown to me

With each passing year, I’m increasingly grateful for the impact others have had on my life. And while I’ve had to work hard to get here, I’d be remiss, and perhaps a bit naive, if I took the all credit.

Originally posted on Medium.

From Code School to Career

We focus a lot of energy teaching and developing aspiring software engineers. What many people find surprising is our favorite students to work with are not Computer Science graduates but Code School Students.

It might be hard to believe that 10–12 weeks of education can position someone to enter an industry like software development, however it’s happening every day and our hiring strategy rests fully on this possibility.

That being said, there are a few things to keep in mind for students jumping from code school to career. Also, if you’re planning on hiring your first code school grad, these may be helpful for you as well.

Code permanence. In class, new concepts are covered daily, in some cases hourly, so worrying about maintaining previous code would waste precious time. In a career, however, starting from scratch is a rare luxury, so consistency and quality are king. Be prepared to write code you’ll see again, which means taking more time to plan ahead.

To address this, we make sure every apprentice receives regular, rigorous code reviews. The goal is to consider the lasting implications of each decision and avoid future headaches.

Consistency. Stressing syntax, indentation, and process may seem knit-picky, but winning the smallest details makes a massive difference over time. Great habits lead to great engineers. There is no hacking that.

At Polar Notion, we pair engineers of all skill levels so they can perform code reviews on each other’s code. When we implemented peer code reviews, on top of senior level reviews, code quality increased almost over night.

Architecture. Much like the foundation of a building, there are fundamental structural choices that must be made early on in a project and aren’t easily changed. The choices require a depth of knowledge and understanding that are gained over time and through practical experience, usually measured in months/years not days/weeks.

Developing this skill is done through design sessions, mentoring, and continual reviews along the way. Parts of architecture can be taught, but it’s also learned through the correction of poor architecture choices, within an environment that mistakes are welcomed as part of the process.

Focus. Sticking to one task at a time is crucial. It’s easy, and often rewarding, to popcorn from task to task knocking out all the ‘fun things’ first. The greatest gains, however, come from batching focus and seeing a line of thought through to completion.

To encourage focus for our team, we actively use task lists. When an engineer is solving a particular problem and notices a tangential rabbit-hole, the expectation is to document the tangent so it isn’t missed, but immediately return to the task at hand.

Remember that developing skills is a journey. Be patient with yourself and others along the way.

Go boldly forward.

Originally posted on Medium.

5 Habits of Healthy Junior Engineers

While the following habits may fit into any disciplined pursuit, I’ve found them especially useful on my journey as a Software Engineer. Your mileage may vary.

1)Be Consistent. Anything can be accomplished when broken down into small enough chunks and executed on over time.

When I first began writing software, I was committed to writing something 7 days a week. I put in 3 hours before work each day, almost a full day on Saturday, plus a few hours on Sunday. This equated to an roughly 25 extra hours each week. Over the last 5 years, that’s an additional 3 work years of experience. Small things over time compound.

2) Take Risks. Pushing your limits is key to continued growth. As your skills increase, the temptation to ‘stick with what you know’ will surely increase. If your hesitant or uncertain about something, don’t shy away; lean in.

In the early days, that meant every project included 20–30% of things I had never done before. It’s not the recommended approach to leveling up, but it provided the right amount of pressure.

3) Ask Questions. You aren’t expected to know everything. When progress stalls, asking questions can kickstart your problem solving and often leave you with a fresh perspective.

As I’ve become accustom to asking more questions, the number of people willing to help has shocked me. Offering to buy someone a cup of coffee and asking them a few questions can be the start of a great friendship.

4) Learn Daily. It should never stop. The most talented engineers are lifetime learners in software and beyond. When you take into account the vast amount of information in websites, books, podcasts, etc there is wisdom and insight to be learned.

For learning Ruby on Rails, I spent a lot of time on RailsCasts, W3Schools, and Stackoverflow. No source was too amateur and no bit of knowledge too trivial. If you’re not sure where to start, the EOFire podcast delivers quality and concise interviews with successful entreprenuers every day.

5) Find a Mentor. An experienced person willing to weigh-in from time to time is priceless. Don’t ask them ‘will you mentor me’, simply inquire about a few practical questions from time to time.

Early on I was stuck on the thought that mentorship was a formalized process where you met on a monthly weekly basis. In reality, mentorship is not that rigid. A trusted, experienced individual who provides insight and perspective is all that’s needed.

Start small and adjust over time.

If you’re looking to further improve your skills, we’ve opened up an opportunity for our apprenticeship. We’d love to see you there. https://medium.com/@MorganJLopes/junior-react-native-apprenticeship-94cb91261882

Originally posted on Medium.

Learn then Lead.

It’s not enough to merely consume new material and grow our personal understand. At Polar Notion, we push ourselves to be continually learning and sharing that knowledge with others.

While many of our team wouldn’t define themselves as leaders, they are. Discussing a solution to a problem, explaining a unique perspective, or sacrificing time so that others many understand more fully are at the heart of leadership.

It’s an iterative process, cycling naturally between the learning of new insights, sharing with others, and learning anew. In a rapidly evolving industry, we have found it to be the only way to stay ahead.

For example, one of our Junior Engineers has a deep appreciate for a Javascript framework that no one else on the team has used. Instead of simply remaining isolated or dabbling on his own, he has been emboldened to prepare his thoughts to present them to the team. When shared, others will have the chance to learn from his discovery and perhaps shifts towards a newer framework that increases their own skills.

With a growing team, the temptation to ‘stick with what works’ becomes more and more alluring. Training people takes time, stopping to ask questions isn’t very efficiency, and short-term payoff is small.

Taking a longer term perspective however, it is abundantly clear that building a thriving team and doing work that matters starts with challenging past beliefs, taking risks, and bring others along with us.

Leadership is not the result of learning, it’s the fulfillment of it.

Originally posted on Medium.

A Culture of Mentorship

My career as a software engineer began with a single phrase, “Hey, I’d like to show you something”.

The phrase was uttered by, at the time, a mere acquaintance who was looking over my shoulder at the rudimentary websites I was building. Excited about the opportunity to improve my skills, I eagerly accepted his invitation to share his expertise. This led to months of late nights, early mornings, and impromptu meet-ups.

A single dollar never changed hands.

His leadership and guidance provoked a single request, “Go and do likewise.”

This gesture of generosity and selflessness has shaped the way we hire, teach, and develop our team. From our first team member to the current apprentice, we seek to embody the same philosophy that changed my life so many years ago; learn then lead.

At the core it’s quite simple:

  • Everyone has a mentor. Someone pouring into them.
  • Everyone has a peers. Someone pushing them.
  • Everyone has a mentee. Some they’re pouring into.

We’re currently filling some gaps. For example, our newest Apprentice hasn’t had the opportunity to mentor others, but we are working to change that.

Also, we’ve delayed in hiring quite a bit, so one of our Junior Engineers is looking for an Apprentice. If you know of someone who would be an excellent fit for our company culture, please pass this along:

React Native Apprenticeship
At Polar Notion, we are focused on raising up the next generation of remarkable software engineers through a 12 month…medium.com

If you work with a business and this style of mentorship interests you, I’ve been working with my mentor, who I now consider a dear friend, to refine our process and give away our findings. Shoot me an email, morgan@polarnotion.com

Originally posted on Medium.

The Cream of the Code School Crop

Over the last two years, we’ve had the privilege of speaking with, encouraging, and hiring untold* numbers of code school students and graduates. In the process, we’ve noticed similar behaviors between the people we hire (as well as other top candidates we’ve wished we could) that separates them from the average candidate.

Top Code School graduates:

  • Demonstrate excitement about learning. Is inspired, not deterred.
  • Display curiosity about new information. Courageous.
  • Dabble with side projects. Actively learning, explores rabbit holes.
  • Pursue education outside of class. Teacher’s Office Hours. Peer-to-peer.
  • Shows Initiative. Attends/leads study sessions, mentors other students.

There are also a few other less concrete behaviors:

  • Pursues extracurricular opportunities. Meet ups. Hackathons.
  • Stays for and engages with guess speakers.

I have hesitated in sharing this list out of fear that future students would execute the behaviors without embodying the attitude that accompanies it. However an important, overarching behavior that’s accompanies each item on the list is consistency. You can fake most of these items, for a time, but without the accompanying attitude it won’t last.

If someone comes to mind when you read the behaviors above, send them our way, https://medium.com/@MorganJLopes/junior-react-native-apprenticeship-94cb91261882

* Don’t be too impressed. It’s not thousands.

Originally posted on Medium.

The War for Talent

While the phrase is slightly offensive*, with the rapid increase in recruiting companies and staffing agencies, it’s obvious that finding talented, experienced people is a common pain point for many companies. As a software engineer with 5+ experience, I receive roughly 5–10 inquiries a week through Linkedin encouraging me review a new opportunity. I can’t imagine the barrage for those who have been around for more than a decade.

Ironically, with the rise in code schools and coding bootcamps, there are more prospects than ever before. So, why the labor gap? Experience and skill.

Most companies have a specific role, with specific expectations, and they need someone ‘yesterday’. The expectations are high and requirements are rigid.

At Polar Notion, we’ve taken a different approach to ‘combat’. Instead of focusing on qualifications, we set our sights on character. While character is part of most hiring strategies, it is at the top of ours. We have found that with time and the right processes, we can teach almost anything but you can’t change people.

To be very practical, that means…

  • No bonus points for a college degree.
  • Age is irrelevant.
  • Years of experience matter very little.
  • Buzzwords don’t impress us.

Instead, we search for people who are…

  • Teachable
  • Motivated
  • Generous
  • Curious

From there, we’ve then developed a mentorship structure that ensures skill and experience increase over time. That’s right, it takes time.

Instead of clamoring for the scarcely limited pool of skilled, tenured professionals we believe in targeting great people and helping develop them into the next generation of remarkable people.

If your businesses is interested in taking a similar approach, we’re giving away all our findings and resources so contact me.

If you’re aspiring to be a great software engineer, are teachable, motivated, generous, and curious, feel free to apply… https://medium.com/@MorganJLopes/junior-react-native-apprenticeship-94cb91261882

* The phrase ‘War for Talent’ actually reveals the root of the issue. War implies a very adversarial relationship, contradicts how we should view healthy relationships. Also, referring to people as ‘talent’ is one step closer to calling them ‘resources’, which quickly begins to erode the humanity from an organization. The ‘Search for Empresarios’ might be more appropriate.

Originally posted on Medium.

We are Polar Notion

Though we could most simply be described as a software engineering team that designs and develops web and mobile apps, we are far from normal. Hopefully our values say it best…

We pursue excellence, not perfection.

Whether the work we do or the way we do it, quality is at the forefront of our minds. Mistakes happen, but our pursuit of excellence means we learn fast and are constantly improving.

We create remarkable experiences.

A remarkable experience for our team, our clients, and their customers is our priority. It comes down to honor, respect, and communication.

We are effectively human.

Though playfully put, being ‘effectively human’ captures the tension of programing cold, rigid machines for living, breathing people. Efficiency and productivity are important, but aren’t the goal. We engineer solutions that amplify human experiences.

We go boldly forward.

Courageous, forward movement is key to innovating and doing work that matters. We collaborate and push ourselves to improve and bring others with us.

As our team and expertise grow, we’re fortunate to be solving more complex problems both digitally, through web and mobile apps, as well as in the physical world, through integrated hardware solutions. While we care deeply about the work we do, we value people above all else. If you’d like to find out exactly what we mean, we’re hiring.

Originally posted on Medium.