Senior Senior Devs
Published in

Senior Senior Devs

Being the Lone Developer on Non-Trivial Tech Projects

I am an experienced software developer with more than 40 years of experience. I went to college and graduate school in the late ’70s, when Computer Science programs were focused primarily on theoretical and mathematical concepts. My curriculum included courses like numerical methods, algorithms and data structures, discrete math, and compiler theory. Professors used chalkboards, and all communications were in-person as there was no widespread email or internet. Compiling a small project of 20 files took 45 minutes if no one else was compiling on the university’s mainframe computer. Bigger projects were left to compile overnight.

The Art of Computer Programming (TAOCP)

Every software project started with an empty directory during my earliest professional years. All my work assignments required something new, designed and coded from scratch. Lone wolf development was encouraged, and developer productivity was measured by the infamous lines of code (loc) metric. You get the gist:

The field of Computer Science was narrow, and one talented person could assume most of the critical roles.

Now, fast forward to today.

The field of Computer Science is vast.

A typical development project likely needs most of the following expertise and skills:

  1. User Interface (UI) design
  2. Front-end development (including mastery of complex libraries such as React or React Native)
  3. Back-end development (using languages like Python, Java, or Javascript) and runtime environments such as Node.js or AngularJS
  4. Data Science and Machine Learning: for projects where data needs to be understood and classified or used to make predictions
  5. Database modeling and management
  6. DevOps and Cloud to automate deployments, minimize downtime, achieve optimal scaling with high availability, and set up services and infrastructure for monitoring and security according to industry best practices
  7. Information Security and Privacy so that sensitive data is protected and least privilege access is uniformly implemented
  8. Product Management to ensure that a functional, viable, and maintainable set of features are delivered in a timely fashion
  9. Quality Assurance and Test so that bugs are discovered and resolved before customers find them
  10. Project Management: for planning and tracking progress and feedback

Have I been Successful as a Sole Developer?

I’ve written about my adventures as a sole developer in these two articles:

To recap, I started a non-profit in 2020 (Sibs Forever). I developed a web application (https://sibsforever.org) that provides a secure, always-free, private platform for surviving siblings to chronicle memories through storytelling, pictures, and videos. The mission of Sibs Forever is to be an online memory book for surviving siblings. It took me more than a year as a solo developer, which included completing multiple online technical courses to acquire or hone needed skills.

How would I rate myself as a solo developer?

Overall, I give myself a B- for project #1.

The weaknesses which brought down my grade are these:

  • User Interface (UI) design: I have absolutely no design skills. I’m a minimalist who prefers black, white, and Courier. I ended up hiring two designers from Upwork to compensate.
  • DevOps: The sibsforever.org Amazon Web Services setup is consistent with industry best practices. The application is highly available and resilient with appropriate infrastructure security and comprehensive monitoring. However, I lost points for only implementing minimal automation. For reference, the SibsForever architecture is described here: https://sibsforever.medium.com/the-architecture-of-sibsforever-org-e36f717c944)
  • Quality Assurance and Test: This is the most severe weakness. I don’t have a fully functioning automated test setup. Unfortunately, users found some bugs (that I quickly fixed).

How is being the lone developer on project #2 going?

It is too soon to grade myself on my second project, a Natural Language Processing (NLP) application that curates, ranks, and offers crowd-sourced reviews for online resources (e.g., for grief, cancer, and eating disorders). I’m committed to improving my (B-) grade and solving the weaknesses I described above. The NLP piece is challenging, so the development timeline is more prolonged than project #1.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store