Cómo desarrollar habilidades de diseño de sistemas para roles de ingeniero de desarrollo de software senior en compañías de productos

Prefacio: no ha mencionado nada sobre su rol y responsabilidades actuales, por lo que estoy respondiendo de manera genérica. Espero que sea útil.

Cualquier producto / sistema tendrá múltiples funciones y, a menudo, estas funciones serán administradas por varios módulos de software. La suma de los módulos es el sistema o el producto que se requiere.

Entonces, comience con el diseño del módulo si aún no lo está haciendo. Si su trabajo le brinda una oportunidad, sería excelente o tendrá que hacerlo por su cuenta en su tiempo libre. API de diseño para el módulo. Defina la interfaz: los argumentos y sus tipos de datos, los valores de retorno (incluidos los códigos de error para llamadas no válidas) y la funcionalidad. Luego implemente cada API, pruebe cada API e integre con el sistema de software general.

Para darle un ejemplo de la vida real desde mi experiencia: diseño, implementación y prueba de punto de acceso Wi-Fi (AP) basado en GNU / Linux incorporado. AP tendrá múltiples módulos: el módulo de radio Wi-Fi, el módulo de red de retorno de Ethernet, el puente entre Wi-Fi y Ethernet, la interfaz de configuración de AP (basada en la Web), la interfaz de línea de comandos y las estadísticas / contadores del sistema. Sin olvidar el gestor de arranque y la minimización del núcleo GNU / Linux. La mayoría de los módulos estaban disponibles como SDK de nuestro socio, pero la interfaz de configuración web se realizó desde cero bajo mi dirección. Elegir el servidor web incorporado más pequeño posible que pueda ejecutarse en GNU / Linux, crear el CSS para la interfaz web y el diseño / implementación de páginas web que se conectarían al backend del AP usando CGI (interfaz de puerta de enlace común – un método de usar C programas para generar páginas html). Todo lo anterior se realizó, probó y lanzó como una versión estable que iba a ser nuestro firmware estándar durante 2-3 años.

Entonces, ¿en qué parte del sistema está trabajando y qué parte del sistema no es visible para usted? Necesita la vista de pájaro o la vista de alto nivel del sistema donde puede ver todo el sistema como módulos interconectados mediante API.

More Interesting

¿Qué hace un ingeniero de software en ISRO?

¿Qué significa tener experiencia con un sistema operativo Linux en los requisitos de trabajo para un puesto de ingeniería de software?

¿Cómo es la capacitación para estudiantes de primer año (ingeniero de software asociado) en CGI?

¿Cuál es la mejor manera para que un joven ingeniero de software aumente su currículum / CV para ser aceptado en un programa de doctorado superior para estudiar aprendizaje automático?

¿Es bueno saltarse la pantalla del teléfono para las entrevistas con el ingeniero de software de Google? ¿Podría estar en desventaja si tengo un punto de datos menos en mi paquete del comité de contratación?

Siendo un ingeniero de software experto en la última tecnología (IoT / AI), ¿qué puedo hacer para regresar a mi ciudad natal donde no tengo esas oportunidades?

Soy un estudiante de grado 12. ¿Qué pasos debo tomar o qué grado debo estudiar para convertirme en desarrollador de software?

¿Cuáles son algunas recomendaciones para una entrevista de vuelo?

¿La velocidad de escritura rápida es una habilidad requerida para un ingeniero de software?

¿Cuáles son algunos ejemplos de sexismo en campos relacionados con la tecnología?

¿Qué trabajo agregaría valor para un hombre dispuesto a seguir su maestría en un par de años: un SDET / QA en compañías como Amazon o Microsoft, o un SDE en compañías de productos medianos?

¿Cuáles son los criterios para dominar C ++ en la industria de la ingeniería de software?

¿Puede un ingeniero de software seguir cambiando su lenguaje / marco de programación?

¿Cuáles son los principales sitios a los que cada programador debería suscribirse?

¿Cuál es la escala profesional para los ingenieros de software?