- What is a developer?
- What does becoming a senior developer mean in terms of career advancement?
- What is an ICT consultant?
- What impact and responsibilities do you have within your projects?
- How should a consultant use social networks?
- What if you want to become a tech lead or even CTO?
- What if you don’t like coding, but have a broad vision?
Writing code and work as a software developer is a job that you can either do from inside a company or outside it, by becoming a consultant. In this article we’ll outline pros and cons of both the choices.
What is a developer?
A developer is a person capable of solving problems through software coding. There are both freelance and company developers. Coding needs can vary widely in each project and over the course of a career, so you may be asked to focus on frameworks, networking, testing, or maintenance more than on using a specific language to create a complete solution to a problem. Another reason for specialization is the difference between front-end and back-end developing, which might lead you to a programming job that differs from what you enjoy most.
While the nominal job is writing code, a developer may also encounter requests for software design or overall software architecture, documentation or maintenance, cloud or networking infrastructure, and many more functions.
If you love to build entire solutions from scratch, freelance work is probably the best fit, although you’ll still be asked to maintain your code over time, and integrate it with or adapt it to other pieces of software.
A career path is easier to envisage if you learn how to take care of the many other aspects beyond, but related to, pure coding.
What does becoming a senior developer mean in terms of career advancement?
The situation described above is the standard beginning of life as a programmer. Working within companies, the role taken in this period is often referred to as a junior developer. If you become very good at your job, or at least at many aspects of it, you may have the chance to become a senior developer.
Senior developers have significant experience in software development and use their expertise and knowledge of industry practices to perform various development tasks such as coding, app development, and web development. They often oversee projects and may specialize in a particular area of development or a specific coding language. Senior developers are sometimes known as Software Engineers.
Senior developers oversee the overall project, mentor junior developers, and report to a higher authority such as the technical lead (or the CTO).
The senior developer joins the tech lead or software architect in planning the project and writes code more efficiently and proactively than juniors. Different components of a project are often written in different languages, and all modules need a separate testing phase. Data and results are double-checked.
A senior developer is a team leader who has a strong innovative streak and is fully capable of meeting strict deadlines. Becoming a technical lead is a natural next step, and becoming a CTO is often easily within reach, due to the team management skills and capacity for innovation honed by the senior developer role.
What is an ICT consultant?
Information and Communications Technology is a broader field than coding: it is a collection of neighboring fields that sometimes overlap, and encompasses technologies and equipment used to collect, elaborate, store, and transmit data.
An ICT consultant has a wide range of tasks to perform. Advising on the design, structure, efficiency, and security of ICT systems is part of the job, as is dealing with all the regulations that apply to ICT, people, and buildings in every geographical area the hiring company works in. Production of infrastructure and/or business assessments to meet specific goals is also important, and all of this must be carried out for specific projects or full architectural structures, on an enterprise- or organization-wide scale.
The ability to work in difficult environments and with more than one team, in which the consultant must gain acceptance as a temporary leader, is essential.
Becoming an ICT consultant is much more complex than being a (senior) software developer, but it’s also a much more rewarding job that normally takes you far from coding software to solving problems from scratch, from the comfort of your own home, using your own tools.
What impact and responsibilities do you have within your projects?
A developer is largely focused on writing code in one or more languages, interacting with databases, backends, and user interfaces. At a higher level, as a senior developer, responsibility for checking your own – and your team’s – work dealing with architecture, strategy, and quality lies with you.
Defining a consultant is much more complicated because this word means a variety of things to different people, depending on the context. In the context of software development, a consultant helps others to meet their goals while respecting the given (and hidden) constraints of the project.
The biggest constraint is probably the responsibilities of the person who authorizes your contract. Are you dealing with a senior developer, a CxO, or someone in a mid-level role, such as the technical lead?
All of these factors must be taken into account when you make your cost/time/resource plan. A consultant needs to know how to manage all possible variables when negotiating a contract.
Of course, there will always be many dynamically-created constraints to manage as well!
How should a consultant use social networks?
Social media is a part of our lives today, and our connections may include work relationships of any kind, from suppliers and customers to our patchwork of acquaintances. What we post, and often also the choice of one network over another, depends a great deal on our role.
A junior developer doesn’t need to pay much attention to their social media presence. Apart from maintaining a clear understanding of what is related to his company and project and must therefore not be shared on social media in any format, a junior developer can post more or less as he or she wants.
A consultant, on the other hand, needs to show what they are doing and for which company, and demonstrate a professional (social) relationship with the executive who signs his checks. To attract more clients, consultants need to be an active participant in many communities and show positive and long-lasting relationships with clients. Sharing some elements of their personal life, such as dinners, entertainment, or vacations in appealing locations is a plus that is greatly appreciated as long as these posts are not too frequent, nor ostentatiously glamorous.
Posting on social media and within relevant communities can be a great weapon in the hands of a professional: these are the places to let everybody know who you are, just in case they need your services. Many of the people you work with will check who you are online as soon as they know you’ve been hired. You need to give the impression of being a clever, friendly, and affordable person – at least online! Maintain a technical blog, manage a newsletter, talk about your clients (if you’re allowed to), make speeches, publish presentations, be present in the community environment… the effort will pay off.
What if you want to become a tech lead or even CTO?
These technical roles look very similar to each other, but in reality are very different. A career path inside a company is very well defined, apart from the different names that are often given to the same roles, or the addition of extra intermediate roles: junior developer, senior developer, technical lead, CTO, and the President/CEO at the apex.
You can become a lead or a CEO in a company by moving up from a lower position in the same company, joining from a different company, or by being hired on a temporary basis at first.
All routes have equal value, but there are minor differences. Coming from the same company gives you fewer chances to develop lateral thinking skills and alters the internal balance of some of the teams. The company takes more risk when hiring someone who holds an equal or similar position in a different company, but this choice can create a positive impression if your company is working on its financing or positioning, and the newly-hired executive/s come from a larger, competing company.
A consultant chooses to stay outside any organizational chart. It is therefore usually a bad move to put them in the frame as a company executive, but it may be the right choice if the company is in troubled waters and needs a different approach.
What if you don’t like coding, but have a broad vision?
You may also discover that your interest in coding was only a first step toward something else.
You had your own projects when you started, but this was only a small part of the overall picture, so you might not enjoy many coding-related tasks.
You may understand how technology shapes companies, but not be interested in putting all the small pieces together yourself. In this case, there are three main paths to consider: becoming a consultant, starting your own company, or moving to become a technical lead or CTO.
All three kinds of work have one thing in common: you don’t need to be an experienced, cutting-edge developer. The less you know of something, of course, the more you need to pay attention – or have someone else you can trust focusing on that aspect of the work.
You could start your own company and be the CEO, but you’ll still need somebody to work as the CTO. This option will give you many fixed limitations, and a medium risk of stress-related burnout.
Acting as a consultant is an alternative. This option will be highly demanding when you are working, but you’ll have the freedom to choose when to accept new jobs, and when to do something else.
Finally you could stick with technology, in the much more interesting role of lead, even though you may have skipped the experience of being a senior programmer, which is an important, but often not essential, pillar of a technical foundation. In this role, you will need a broad vision of the ICT-, product- and service-related aspects of a project, as well as an excellent ability to manage your teams and connect effectively with other teams. This could lead you, in time, to accumulating all the knowledge needed to become a CTO.
It should be pointed out that we live in a time when a job is more than a title; your responsibilities and tasks, and plenty of goodwill when working in a team are just as important, if not more so. This has always been true, but the unwritten element is growing rapidly in importance with the speedy rate of change we are experiencing. At the same time, the need for many and varied competencies – technical, legal, and human – is becoming the most central part of our daily work.