I am Software Engineer and former Director of Engineering, Ask Me Anything!

twitter logo github logo ・1 min read

Hi, I'm Allan. I been working as a professional software engineer for 10+ years, I have worked as a freelancer, Director of engineering for a team of 40+ developers and I'm currently the CTO of a small startup up.

I'm happy to answer any questions about the industry, hiring and career path development.


twitter logo DISCUSS (18)
markdown guide

What are the main qualities you look for in an engineer that would qualify him for a promotion or leadership role?

Separate question. Did you always have the soft skills or did you work on it? If so how did you improve?


Depends on what specific leadership role was being considered. The way I have structured before there where 2 main leadership roles available for developers:

  • Practice Lead: 70/30 split between development and management, middle management responsibilities like performance reviews, 1on1s, more involvement with the DoE day to day.
  • Team Lead: The technical go to person for a specific team/project keeps the team on track and works closely with the project management.

Overall ownership and having a good developer mindset, both are essential for leadership as well wanting to do the role and take the responsibility of leading.

Did you always have the soft skills or did you work on it? If so how did you improve?
Absolutely not, my soft skills and even communication skills where poor at the beginning, as for improving them reading and a lot of introspection, as well asking for feedback.

I highly recommend this book as a starting point:


Did you make the leap directly to the director role or were you an engineering manager too? Where were the most important skills for each of these rolls? How did your background equip you for these roles?


I actually had several roles with scaling levels of responsibility. Technical speaking my role as Director of Engineering was very much an engineering management role, hiring, firing, performance reviews ... you know the fun stuff.

Before that I had a role as Practice lead, which was def more technical and less management, but still a good introduction in terms of mentoring and training.

Softskills become essential as you dig more into management, knowing how to resolve conflicts, give feedback, etc.

Honestly, my background and the career path planning I had a the company I used to work wasn't the best it was more of sink or swim kinda mentality.


I teach myself programming, right now is front-end. Do you think I could have a chance to get hire? If there is a change, what should I do to get it?


There are plenty of opportunities for FE work on many different niches, what kinda of technology / stack are you focusing on?


Thanks for the support. I'm only use plain Js, (sometime I use jQuery too). Something like this: codepen.io/dangtu/full/GXeQrR

Not quite skillful, but not really worst.

Ah, if you mean stack is a collection skills than : HTML, CSS, plain Js


What was your job as Director of engineering? Where you involved in the process of software development as well?


As Director of Engineering my main job was to remove blockers for the team, be the engineering manager, which means training, education, 1on1, performance reviews; as well keep an eye and lead the technology directorion.

I wasn’t getting enough time actually coding, if that did happen it was probably not a good thing, as director of engineering you should be involved on the software development process at a high level.


In your opinion, what separates a developer (let's say, a front-end developer) from being a front-end engineer?


Ownership and attitude, doesn’t matter what the specialty is (FE, BE, FS) an engineer has a good sense of ownership of the solutions they are building, is always trying to make things better and treats its work with respect.

In my mind is a higher standard of the work we put out there


How can someone know if they're a bad developer or not.


Let me start with being good a coding doesn't make you a good developer. A good developer things pass the code and is:

  • Capable of communicating clearly: We have to deal with people no matter what, be it to get requirements to other people on the team.

  • Business driven:We are paid to solve problems, our tool of choice is code, but not everything needs or can be solved coding; a great developer thinks on terms of the business first.

  • Think before you code: Great developers consider the implications and edge cases before you code and make sure to document those limitations.

  • Documentation: No matter what write documentation for your code.

  • Attitude: The days of the grumpy developer that forces his opinion down everyones throat is gone, you might be right but having a positive attitude is important too.

  • Continuous learning: Great developers have an insatiable thirst for learning and continuing to improve.


Any advice on writing my first technical book? I do not know if I should search for a publisher, make it open with donations or use a dedicated website like manning or others.


Distribution is relatively simple. The tricky part is planning, organizing and actually writing the book.

My advice before you start reaching out to publishers is the following:

  • Build an outline which should have the Book Description, chapters and general structure

Pick a chapter other than the first one / introduction and put a deaf together.

That will help you structure and solidify what kinda of book you are writing, a better ideas of the effort and double as prep work since you have content that publishers will typically ask for as part of any proposal.


What's the difference between being the director of engineering and the CTO?


I actually wrote an article about the difference between CTO, Director of Engineering and VP of Engineering, forbes.com/sites/forbestechcouncil...


I like to describe this role as β€œThe Hacker in Chief.” He or she is the leading architect, thinker, researcher, tester and tinkerer. Typically, the CTO will be one of the company co-founders.

VP Of Engineering

The difference between the VPE and the CTO can be described in a single word: execution.

VPEs are often great people managers, solid engineers and they are responsible for making every member of the engineering team successful. Traditionally, the following makes up the VPE's core responsibilities:

β€’ People management

β€’ Technical leadership

β€’ Strategy development

β€’ Execution of the business vision

The VPE is also responsible for managing the budget of the engineering department and should be the lead recruiter when it comes to looking at engineering candidates.

Director Of Engineering

We mentioned that one of the core responsibilities of the VPE is people management. However, there can be a significant constraint when it comes to this task -- and that is managing teams of up to ten (ideally six) people. Anything larger than that represents a significant drop in effectiveness.

This is where the director of engineering comes into play. They are typically an extension of the VPE seat and report directly to them. They are in charge of managing subsets of the engineering staff and helping the VPE with the execution and technical leadership of the company.

Classic DEV Post from Jan 8

Jenn's Guide to Thriving in Tech

General tips for those in tech careers.

Allan MacGregor πŸ‡¨πŸ‡¦ profile image
VP of Commerce Platforms, @BounteousCanada Ecommerce developer, Functional Programming Advocate Author: http://coderoncode.com/books/ Opinions are my own.