As tasks change, the requirements can be very different. Typically as the task begins to move from the documentation to development stage, there are many meetings to discuss design and development prototyping.
The work environment is very demanding for a Principal Software Engineer. The workplace culture can be very good and supportive when the technology and requirements are understood by the team.
The hardest part of my job is the design and development of new technology stacks. As a small company, there are not many people with the skills in various fields (i.e. enterprise software design or application servers), and it often falls on the principal software engineer to learn these skills quickly and produce a prototype and proof of concept in which others can follow. The most enjoyable part of my job is working with and mastering a vast range of technologies and stacks. I have a very strong C#, .NET background, but I often get to work with projects that involve Java, Python, and many other languages in which I have become very proficient.
I enjoy designing and developing enterprise software and high performance computing software. I enjoy working in a collaborative development environment, and do not like working independently. I want teams to work together and I often do as much as possible to bring the team together. This can be challenging when I join a task and do not have the authority to delegate work to other team members (this depends on the task or mission project). I also enjoy beginning initiatives such as leading software developer meetings and opening - more...
Free Coffee, Ping Pong Table (although I dont have time to play)
No support for software design and development, lack of experienced developers, poor leadership from task leads