Skills

My Software Abilities

Back to experience

These are the software skillsets I have built up, primarily out of need to employ them in roles I've set up myself and did not have the necessary skills yet coming into the role.


Front-end development
:
My focus has been on development of enterprise scalable, modern web application clients using the later versions of the Angular framework. In addition to full use of the libraries provided in the framework, our product development required usage of various other libraries like Chart.js, ng2-charts.js, Ethers.js, Firebase.js, Google-cloud.js, socket.io.js, stripe.js, d3.js, jasmine, karma, lodash, sass, tslib, token-interceptor, angular-material.js, agm, ngx-currency, ngx-image-cropper, ngx-translate, and ngx-stripe, for example.

My notes on Angular: Angular has kept me locked in as my choice for client app because of its powerful built-in functionality that I don't believe is matched by any current client library combination. Its abilities to allow me to set up a project ready to scale and then to keep a rigid structure in a good way as the app is further developed while still allowing for rapid addition of necessary and useful tools like network services and code testing is incredible for app development. The learning curve is certainly steeper than for other options in front-end development but I believe this was very much worth the time and effort to arrive at the production ability I find myself with now.


Development pipeline
:
Despite not working with large teams, our operations were built to scale, including the deployment pipelines. Our systems were built using infrastructure-as-code management systems such as Terraform and YAML files for testing and deployment automation on our repositories during commits.


Software product management
:
Being the only technical cofounder at both businesses, the responsibility for building the products fell on me. My primary task was sourcing talent and directing operations of product development. Our businesses employed Agile development, including Scrum systems using sprints I would groom (planning, prioritization, availability communication, standup) with user stories built on FDD concepts. Our system relied on ClickUp and third party integrations with Slack and Github as our management software suite.


Prioritization capability
: I think it's worth noting that the function of both managing the Scrum system of multiple application development using freelancer developers while also developing Angular components, modules, services and directives myself was both a great learning opportunity for me but also a significant workload which required careful time and prioritization planning. For these functions, I relied extensively on my own personal planning systems using handwritten notes in my notebooks and also my PKM (personal knowledge management) app use on Logseq.


Backend development
:
While I never took a full time function on backend development, I worked a great deal building the MVP backend at DexGrid using NodeJS and Firebase Firestore as our database solution. In addition, during the development of our production applications later on, I placed focused on learning the Golang language and the functionality of it with PostreSQL and GCP Cloud Run to manage the training and ramp-up of our new backend developer.