A volunteer project to demonstrate how I approach software engineering
More recently I have found myself looking for a new position for a software engineering company in DE, Germany. This has brought about a number of new and interesting challenges; most particularly for this article the need to demonstrate my capacity as a professional software engineer.
The challenge when applying for work is attempting to showcase skills in such a way that demonstrates to future employers that I am a competent, solid investment to help improve their organisations and their teams and to demonstrate that I am capable of doing the work that I am say I am.
To that end, organisations often provide some sort of “coding challenge” or other demonstration of work. This makes some sense; the best way to determine a candidate's efficacy is to give them a chance to “show what they can do”. However, it puts the candidate at the risk of certain unknowns:
- What is the organisation looking for?
- How much time should I invest in this project?
- What are the tradeoffs that I should make while shipping this project to production?
None of the questions can be easily answered, nor are they consistent across organisations. My current strategy is to do the best possible work I can within the time period allotted and trust the organisation can understand the context of the test.
That said, there is another way in which to demonstrate competence — provide a project that can be easily understood, demonstrates the skills that I have as a candidate and allows me to make a much deeper investment in the quality and delivery of a project than several small investments in various companies.
To that end I am trying to approach the problem slightly differently, both by:
- Creating the
- Using the opportunity to document the design decisions, thinking and so fourth via Medium.
Because the project is almost entirely demonstrative, it is an “empty shell” in terms of business functionality. However, to provide some structure it will attempt to solve the challenge of best expressing my skills as a software engineer.
The expected consumer of the information generated by the
- HR team members who need to evaluate colleagues against particular job requirements quickly
- Curious recruiters who are on linkedin and would like to understand how I fit into their open positions
- Technical team members who are curious how I can contribute to a given organisation
The goal of the product is to generate information in a way that is easily consumable for these third parties but that is tailored to their job description.
The proposed evolution is intended to operate in several stages:
- The representation of the information that is already in the website https://www.andrewhowden.com/ in a programmatic structure, such that it can be used to generate the same reports already used on that site.
- Using specific job descriptions (“devops”, “senior PHP developer”, “systems architect”) to modify the way data is represented to provide a report that surfaces the most interesting skills for that role
- Using text analysis to query the job description for a particular set of skills and surfacing interesting data to the users that match those skills, regardless of the job title.
This is a project I am doing to demonstrate particular aspects of software engineering, rather than deliver a particular product. Given this, the timeline will be chaotic at beast, with the goal being to generate a set of stories associated with this particular project rather than the project itself.
This post (and the relevant commit) constitute the first steps in this project; the description of its goals and purpose. To be perfectly honest, the next steps are unclear.
I will continue to improve the project as it is good practice for me to think about how to explain these design decisions to future colleagues and unless it has adverse affects on my job search I will continue to publish how I approach the project.
With that said, because this is a new and different strategy I am open to feedback as to how to proceed. If you are interested in following along, great! Let’s work it out together. Or, if you think this is a terrible idea also great! Let’s chat about it.
Let’s go exploring! ❤
The next post in this series is “The Contract”