This is the root repository for the Kurt Lenfesty Devopsy Coding Portfolio. This set of repositories tie together a demonstration of different technologies.
There are several motivations for writing this portfolio which is a collection of related projects:
I'm in the process of moving to a different role in a different organisation which entails demonstrating expertise in multiple technologies. A survey of the technologies described in job postings reveals over 50 technologies, including things like: Java, JavaScript, NodeJS, Python, Ruby, SQL (with MySQL, MSSQL, Postgres), MongoDB, MQ, Mule ESB, JSP, JPA, JTA, JMS, Hibernate, ibatis/myBatis, CloudFormation, AWS IAM, Docker, Terraform, SOA, Ansible, Puppet, Chef, Jenkins, Spring Boot, Spring Web, Grafana, Swagger, React, Redux, Angular, Apache Camel, Amache AMQ, REST, XQuery, XPATH, XSLT.
That's a lot of technologies. From my point of view trying to do a technical interview with a subset of those technologies is almost impossible: what are you testing with your questions? How can you tell if you've excluded a skilled and desired candidate (a false negative) or included an unskilled or unwanted candidate (a false positive)?
The major sets of technologies that I want to demonstrate are:
- Competence in Java and Java-related technologies
- Competence in JavaScript and JavaScript-related technologies
- Competence in specific AWS services (kind of under the umbrella DevOps)
I've been to a few job interviews where the technical aspect of the interview is asking tricky questions about a specific technology (such as Java or JavaScript) or implementing some algorithm that is handled by a library. This could be certain aspects of the language or quirks. In my own experience as a software developer, most of my work is either debugging interactions with a framework or writing code to work within that framework. I think the tricky questions are best for those just out of school.
The purpose of these projects is to demonstrate some key technologies in Java, JavaScript, microservices, persistence, continuous integration and continuous deployment (CI/CD) and cloud technologies. Each project is related to a specific architectural component or functional artifact or set of artifacts.
Issues are tracked with a public Trello board (so you can see how issues are tracked). It can be viewed at Kurt Lenfesty Portfolio 2018.
Any tasks related to architecture or design work. This can include diagrams and documentation.
Any tasks related to Continuous Integration/Continuous Delivery (CI/CD).
Any tasks related to tools and coding infrastructure, but not the actual running code. This would include things like gradle plugins, Nexus repositories.
Tasks related to setting up cloud infrastructure, including CloudFormation templates.
Tasks related to building the front-end. UX is a bit of a misnomer in that the design is concerned with demonstrating technical interactions, not necessarily the best human interactions. This includes front-end tests.
Tasks related to the API structure itself, which can include work on AWS API Gateway and developing a RESTFUL API. This includes API tests.
Tasks related to back-end services, including database structures. This includes back-end tests.
The current licence is GPL v3, but since I wrote the code I could change that licence (as long as I haven't incorporated somone else's code with a different licence).
© 2018 Kurt Lenfesty. All rights reserved.