Grow as an Engineer

Resolve to grow as an engineer

Resources to develop and thrive as a tech professional

In our last article, we introduced the new year as an optimal time for organizations to hit the reset button and make the necessary pivots to achieve success – like taking a proactive approach to strengthening operational standards. Among those standards is professional development. If we expect our engineering team to thrive in the responsibilities of their role and creatively solve difficult problems, then in turn, our engineers need education and resources to grow as tech professionals. Our approach to accelerating professional training and development involves:

  • Cross-Functional Learning: Current team members are encouraged to teach a new technology by hosting a “Lightning Talk” or “Lunch & Learn” session to educate their fellow colleagues. Along with these workshops, team members also share their technical knowledge with other departments to keep them informed of the latest developments in software, testing, and even marketing.
  • Professional Growth: Employee development must be holistic, so self-regulation, motivation, empathy, and social skills play a vital role in proficiency at any level within an organization. Our engineers have a defined career ladder where they know what to expect for advancement, plus we reinforce that growth trajectory with career planning, goal setting and regular 1:1s. Additionally, we provide continuing education through Udemy with the world’s largest selection of online video courses in a variety of disciplines.

Outside of these organizational resources, we thought it would be helpful to also establish resources and tools we’d recommend to engineers looking to develop and advance in their careers. When we asked our Leadership team for their recommendations, we received some thoughtful responses. Below are our recommendations for becoming a better software engineer or quality assurance professional.

Develop as a developer

There’s writing code and then there’s great software engineering. While anyone can learn the basics of syntax and formatting, being a skilled developer is mastering fundamental concepts and logic. There’s no one simple way to teach someone how to improve their problem-solving abilities, but we have some tools to help you grow from capable to good (or from good to great).

  1. Start with good architecture: Study the right (and wrong) ways to plan, create, and manage software projects. That would include any guides on design patterns, anti-patterns, and SOLID principles from credible sources.
  2. Subscribe to best practices: If you want your code to be clean, performant and more resilient, it’s important to learn the methodology for building modern, scalable, maintainable software-as-a-service apps known as “The Twelve-Factor App”. The format is inspired by Martin Fowler’s books Patterns of Enterprise Application Architecture and Refactoring.
  3. Rely on Uncle Bob: Robert Cecil Martin, better known as Uncle Bob to the software engineering community, is an invaluable resource for those focused on software craftsmanship. As a software engineer, he is best known for co-authoring “Manifesto for Agile Software Development”, but we consider any of the Uncle Bob books must-reads.
  4. Put it into practice: While reading about something is great, doing is learning. Take those newly acquired skills to the next level. Apply the Boy Scout Rule, refactor, and re-architect as you grow.

Up your QA game

Analytical, organized, curious – all admirable traits to have as a software tester. But what if you want to elevate your role? While it’s impossible to be an expert in every language and technology, a good QA professional should still maintain a general knowledge of each. Improving your technical skills becomes inevitable to keep up with trends, but where should you place your focus?

  1. Process, Process, Process: To understand how to test, it’s crucial to understand the overall software development process as well as the difficulties of developing software. Aside from the suggested reading above, we also recommend these titles to pick up tips and tricks: “Mythical Man-Month”, “Code Complete”, and “The Pragmatic Programmer”.
  2. Learn a language: Tackling a new language, like Python, C#/.Net will not only help you understand a developer’s perspective, but it will allow you to immerse yourself in the code and understand the context in which you’re testing. Testing is better (and easier) if you can at least read code that the software under test is written in. This allows you to focus your testing around functions that have changed, and skip likely unaffected portions until later.
  3. Add an Automation layer: Automated web testing using Selenium WebDriver is a very desirable arrow to add to your QA quiver. By first learning a language, and then learning how to write Selenium tests in that language, you can say goodbye to tedious manual testing tasks. This can speed up overall regression test cycles, can be fun, but also adds that all important bullet to your resume. The best place to start is the official Selenium site, but there are a growing number of self-paced resources available to learn via YouTube videos, official tutorials, or even via Udemy.

The pay off

At Rivers Agile, we provide our engineering team with the tools they need to develop and advance in their careers. When given the opportunity to thrive, they believe in the vision, remain loyal employees, grow as engineers, and contribute to the prosperity of the company. From software development to quality assurance to project management, that “buy-in” is just a portion of what clients receive from a partnership with Rivers Agile. Work with our growing team – start the conversation here!