软件工程师的主要职责包括设计、开发和维护软件应用程序,负责软件项目的实施和管理,参与技术方案的讨论和制定,解决软件开发过程中的技术难题,编写技术文档和用户手册,与团队成员协作完成项目任务。