Learning to Learn: Software Teams

Outside of school very seldom in software development will you completely work alone on a project. Leading and being an effective member of a software team will be critical to your success in this field. However each team and project is different. Some projects have a high iteration cost because testing could cause people to die (e.g. bugs in rocket guidance systems in manned space flight), testing could be lengthy (e....

February 9, 2023 · 9 min · 1814 words · Robert Underwood

Learning to Learn: Software Development on Linux

What is software development? At a most basic level, it is the activity of using a programming language to achieve some set of goals over time. It includes everything from scripts that a graduate student might write to analyze some data to massive systems that control aircraft. As our world continues to progress technically, software development will likely become even more commonplace than it is now. In this post, I aim to provide a comprehensive overview of how one can develop software efficiently using free and open source tools on Linux....

January 22, 2023 · 71 min · 15087 words · Robert Underwood

Strong or Robust?

Should a software design be strong or robust? This is a debate that seems to have been developing in recent years with the recent proponents so-called “strong-typing” advocating new API designs. In this post, I go a little into the debate and discuss its consequences. What does it mean to be strong vs robust? Robustness in software engineering is not a new concept, and intuitively a attractive one. Who doesn’t want their software to be robust?...

November 17, 2019 · 6 min · 1183 words · Robert Underwood