Johnathan Irvin

Frequently Asked Questions

What experience do you have in the field of software development?

I have written everything from the front-end user interfaces to the backend database and everything in between. I have spent time writing software multiples companies ranging from small to large. I have written software for several industries including cybersecurity, retail, and manufacturing.

I have a passion for teaching and mentoring others. I have taught software development to dozens of people over the years. I have taught in both formal and informal settings. I have also written blog posts.

How did you get into software development?

Since I was a toddler I have had an interest in computers. I attempted to take my toys and shove them into my parents' computer to "make them work." Despite many years, I've never been able to get a 3.5-inch floppy disk to work with any of my oddly shaped plastic toys.

Later, when I was about seven years old, my father stole me away to the library. He showed me how to use the computers there. I was hooked. The library's computers had time limits. I wasn't able to explore them for more than half-an-hour. That day we went home with a book on QBasic.

What are your strengths and weaknesses?

My biggest strength is providing creative solutions. I show promise in my attention to detail and dedication to my work. I also have experience leading teams, which has forced me into effective communication.

My weaknesses include my occasional perfectionism, which can lead to me spending too much time on minor details, and my tendency to get bogged down in the details of a problem instead of seeing the big picture.

What salary are you looking for?

A salary should be fair and commensurate with my experience and qualifications. The proposal should also reflect the company's budget and the current market value for my skill set. If the range on the provided contract or job description is too low, I will be sure to decline professionally.

Contact me on Linkedin if you are interested in working with me.

Are you willing to relocate?

Relocation is obsolete for software engineers. The industry has shifted to allow for work from home. These options eliminate the need for expensive relocations.

The cost of living and working in different parts of the country can be expensive, and often requires a higher salary to maintain the same standard of living. This is especially true in larger metropolitan areas.

The work from home options that are available for software engineers eliminates the need for costly relocations, and allows for a more flexible lifestyle.

When can you start?

I need four weeks before starting a new employment. Two weeks for my current employer and two weeks for vacation.

The vacation is a reward because life is too short to work all the time.

Describe a time when you had to overcome a challenge at work.

I once took over a team of engineers on a code base written by a single junior engineer. Code was in a terrible state, the project was behind schedule, and feature delivery time was on a downward spiral. I had to work long hours for several months to get the team back on track. The frustrated customer became happy again.

I was able to turn the team around by doing a few things:

  1. I sat down with the team and discussed the current and future state of the project.
  2. I set up a daily stand-up meeting so that everyone could stay on the same page.
  3. I instituted a code review process for all merges.
  4. I worked closely with each team member, providing daily 1-on-1 guidance.
  5. I consistently under-promised and over-delivered.
  6. I implemented trunk-based development.
  7. I reduced deployment cycles from 1 month to 1 week with intentions for daily deployments.
  8. I automated end-to-end testings, eliminating multiple-day manual quality assurance tests.

Describe a time when you made a mistake at work and how you handled it.

I dropped a production environment.

I had just taken over a project with an "interesting" deployment strategy. It used a bunch of semi-manual jobs and required manual developer intervention. One of the extra jobs happened to be "drop production."

I was in the process of releasing a new version to a production environment when I clicked the little devil. It was late, as most production deployments are. I was the only one in the office. I remember thinking, "Oh crap, I shouldn't have done that."

Fortunately, I quickly got everything back up and running with some backups taken before I went into maintenance mode. Bonus, this software was in early beta.

The meeting with my boss in the morning was interesting. I killed the button while my boss watched.

It happens to the best of us.