Skip to content

Instantly share code, notes, and snippets.

@amcgregor
Forked from jacktolmie/gist:7af6fb196c361ef562cf45416066711f
Last active April 5, 2024 04:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save amcgregor/dbd847807e4a9309676265183011b502 to your computer and use it in GitHub Desktop.
Save amcgregor/dbd847807e4a9309676265183011b502 to your computer and use it in GitHub Desktop.
Answers to informational interview questions provided by “FuzzyBottom” in the #webdev Libera IRC channel.
  1. Name (made up if you want)

Alice Bevan-McGregor (yay, Welsh + Scottish!)

  1. Please describe the tasks that are performed during a normal work week.

A wide variety from project management ("ScrumBan"), devops, IT infrastructure management/maintenance, to light QA validation and web design; beyond the typical sit-down and code software development aspects. Sitting down to code is driven by the project managment; "work item" / "product backlog item" / "feature" categorization and prioritization left to a qualification specialist from QA and the "product owner", respectively. Effort estimation guiding the prioritization handled by myself and my development team.

  1. What education, training, and related experience does an applicant require to work in this field?

I, personally, have had no formal post-secondary education in computer science or information technology. I was self-taught from an early age, given a Bell Labs "CARDIAC" cardboard computer by my father. A toy that teaches computation. Enrolled in a summer BASIC course, and given at a young age a fair amount of LEGO: a toy that makes engineers by way of creative problem solving.

I began in a privilleged position: my father was a draftsman and civil engineer, and entered computer science early on in the personal computer revolution prior to my birth. As a result of this, I was essentially born with access to a kit-built Apple II, eventually a Macintosh Plus and 512K, and ultimately PC by way of an early 386. He was registered Apple developer #1000 in Canada. He got a t-shirt!

I wrote and sold my first commercial software at the age of nine.

  1. In your opinion, what are the current prospects in this field?

Tenuous. There is a massive drive, especially at the corporate level, to train actual software engineers on how to better train their AI replacements. There are already commerical products that explicitly advertise themselves as "AI software engineers". This is highly problematic.

Engineers have a responsibility first towards the public good.

AI have no concept of good.

Code assistant tooling? A way to gather data and further train AI. (A real engineer tweaks the answer? Learn from that.)

  1. What advice would you give a person coming into this job?

Specialize if possible. Generalism can be a specialty. I don't consider resumé that come across my desk that explicitly mention "I'm a Django developer" (specific web framework) when I'm advertising for a Python position. That Django is Python does not mean the developer can program Python, only Django.

Restricting yourself to specific frameworks (especially if they're just the "flavour of the month") is a severely limiting handicap. Learn the langauge the frameworks are using, and you can conquer the world without them. Faster than if you were to use them, despite how they advertise themselves. In spite of how they advertise themselves.

  1. What do you like/dislike most about this job?

On the positive: there is nothing quite like encountering a novel problem, and finding a crafty, but legible, reliable, and maintainable solution. Often less is more, and love is the correction or addition of a feature by removing more lines than those added. It may feel foolish to correct a single-character typo to fix a bug, but rapidly finding that single byte can be exhilirating.

Code bonsai: reduction to the essential. A thing of beauty is a joy forever.

Root cause analysis: making sure something unexpected can't happen unexpectedly ever again. There's real satisfaction in that.

As for the negative, primarily this revolves around the stress levels involved. Timeframes are always too short. The product owner never understands that the cart must go behind the horse. Being asked to perform tasks that are actually impossible, or to simply patch other (external party) mistakes within your own systems leading to horrendous fragility that you can see coming miles away.

Code smells and technical debt are never the priority. Corporations are all about unending growth and profit, not correcting liabilities. Seemingly regardless of the risk.

  1. Anything you would like to add?

I am an unusual case. I do not write "exceptional", I'm not that egotistical; the advantages I have come with intense personal deficits I would not wish on others. On one hand: my code ran in the helicopter we sent to Mars. On the other hand: generalized anxiety disorder and PTSD.

I died. But I got better, and that means I won.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment