Meeting with the software development team to define the scope and scale of software projects . Designing software system architecture . Completing data structures and design patterns . Designing and implementing scalable web services, applications, and APIs . Developing and maintaining internal software tools . Writing low-level and high-level code . Troubleshooting and bug fixing . Identifying bottlenecks and improving software efficiency . Collaborating with the design team on developing micro-services . Writing technical documents . Good communication skills . High-level project management skills .