There isn’t a lot about me people know from the site, but I have been a software developer and a leader of software developers for a number of years. Recently, a few people who are coworkers and even friends have found themselves on the market as developer jobs contract in the United States. However, a question that keep coming up is, “What do I need to know in order to secure that next position?”
Well, I am putting together this list of skills to help you out. Also, if anyone figures out who I am in life, this is my own list and does not reflect the needs or opinions of my employer. This is just my opinion and stuff I have used over my career. Depending on the job, there are going to be other skill requirements and I am not going to go over every permutation of skills. This is just a generalized list of skills that should transfer.
Concrete Software Development Items
- At least two compiled languages are advisable. I do not mean a passing knowledge of the language. I mean a solid understanding of the language, libraries available, best practices, etc. You should know how to use them for command line, web APIs, WASM, etc. Personally, my primary go-tos at this time are C# and Go. I have used C# longest in my career and it has been an excellent choice. Go is another solid choice for me as I have found I am very productive with it. Other valid choices are Rust, Java, C, and C++.
- Scripting for Linux and Microsoft platforms. Linux is picking a shell and going with it. Microsoft, well, Powershell.
- I am pretty ambivalent on Python as I personally don’t use it much. However, if you are looking at more security, data, or AI focused positions, it is a requirement.
- If you do web development, you should know vanilla JavaScript, jquery, and a couple of well used platforms like Angular or Vue.
- Know your tooling. Really learn how to use Visual Studio, Visual Studio Code, or the JetBrains Suite of tools. You should know how to configure your projects by hand and understand what the compiler is doing.
- SQL. PL/SQL and/or T-SQL. Thou shalt NOT be beholden to some ORM.
- Logging and Observability Platforms. Where to look, understanding what certain errors mean, etc.
- Excel and LibreOffice Calc – Formulas, getting data, writing your own plugins, etc.
- Git commands (or at least using Git Kraken) and deployment strategies.
- Containerization. You should know how to build a container image file and how to deploy on Docker, Podman, or Kubernetes.
- Linux
- JSON and XML
- Project management software (Azure DevOps, JIRA, Github)
Abstract Software Development Items
- Design Patterns – Head First Design Patterns: A Brain-Friendly Guide is good intro book on the subject.
- Richardson Maturity Model – Martin Fowler on the subject
- OSI Model (Open Systems Interconnection Model) – It will help with those pesky network issues.
- Database Normalization and how to diagram it.
- Clean Code and Onion Architecture
- CQRS – Command Query Responsibility Segregation
- OWASP Top 10 – You should know how to perform them in order to guard against them.
AI
- I was hesitant to put this in here as it is relatively new and still evolving. I am not an AI expert.
- Understand what a LLM is and which ones are available.
- Understand the pros and cons of LLMs.
- Understand the limitations of LLMs.
- Practice getting the most out of your prompts.
- Practice reviewing your code and not just trusting it.
- Get familiar with workflows, customizations, and settings stuff up.
Soft Skills
- Command of the English language is a must.
- Practicing verbal communications and how to speak clearly.
- “Be here now” mentality in meetings. Put down the phone and quit checking your email when in a meeting.
- Career planning and thinking about where you want to go and what to do.
- Active listening
- Writing a plan for action.
- What makes for good documentation.
Job Hunting
- You should have multiple copies of a resume available in order to tailor it to what the employer is wanting.
- Also, you will want to tailor your resume to your employer. Gone are the days of having a bunch of copies printed out.
- A nice set of clothes for interviews
- For men, know how to tie a half windsor knot.
- For better of worse, updating your LinkedIn profile.