Hay muchos desafíos de ingeniería que enfrentamos aquí en ZenPayroll. Sería imposible para mí cubrirlos todos, así que solo resaltaré tres.
Diseñando nuestra base de código para la productividad del desarrollador
Los 50 estados tienen sus propios conjuntos de impuestos sobre la nómina, programas de pago de impuestos, formularios de impuestos y requisitos de cumplimiento de recursos humanos. Agregue las complejidades adicionales de los impuestos específicos de la ciudad y del distrito escolar, y pronto se dará cuenta de que escribir software para automatizar la nómina en los Estados Unidos es extremadamente complejo. A medida que escalamos rápidamente nuestra expansión estatal, un gran desafío de ingeniería ha sido la arquitectura de nuestro sistema de tal manera que desarrollar el estado 50 no es más complejo que desarrollar el estado 5. Necesitamos una arquitectura que nos permita andamiar todos los puntos en común entre los estados muy rápidamente, pero lo suficientemente flexible como para manejar las complejidades que hacen que cada estado sea único. Esta parte de nuestra base de código está siendo diseñada con mucho cuidado, con un gran énfasis en la productividad del desarrollador.
- ¿Los consultores logran ganar una compensación más alta que los ingenieros de software regulares con el mismo nivel de experiencia?
- Cómo aprovechar al máximo mi tiempo durante una pasantía de un año en el Área de la Bahía de SF
- ¿Muchos de los países con altas tasas de piratería tienen una industria de software importante?
- ¿Cómo se comunicaban e intercambiaban aplicaciones complejas en red antes de desarrollar el estilo arquitectónico REST?
- En el desarrollo de software, ¿cuál es la diferencia entre 'beta' y 'alfa'?
Una máquina virtual para cuentas bancarias.
ZenPayroll procesa $ 1B + en nómina anual, y este número continúa creciendo muy rápidamente. Todos los días, movemos millones de dólares, principalmente a través del Sistema ACH, y es fundamental realizar un seguimiento de cómo fluye cada dólar a través de nuestro sistema.
Confiscamos el dinero destinado a los impuestos sobre la nómina de nuestras compañías y remitimos el pago a varias agencias fiscales del gobierno cuando vencen en nombre de nuestros clientes. Debido a que los impuestos pueden no ser exigibles de inmediato, acumulamos grandes flotas en nuestras cuentas bancarias. Como tenemos miles de clientes y no podemos abrir cuentas bancarias para cada uno de ellos, hemos creado nuestro propio sistema para “virtualizar” las cuentas. De esa manera, la flotación de una empresa no se puede gastar para pagar los impuestos de otra empresa. Virtualizamos las cosas aún más: dentro de la misma compañía, la flotación destinada al impuesto federal FICA se encuentra en una cuenta virtual diferente de la flotación destinada al impuesto estatal sobre la renta. Hacemos lo mismo para el pago neto de los empleados, los pagos del contratista y los pagos de caridad
La gran cantidad de dinero con la que tratamos requiere que nuestro equipo de plataforma diseñe continuamente sistemas para que seamos buenos administradores de los fondos de los clientes.
Seguridad y fraude
Las compañías de nómina manejan mucha información personal confidencial: cuentas bancarias, SSN, EIN, salarios, dirección personal, etc. Curiosamente, hay muy poca regulación sobre el manejo de esta información. No existe un equivalente del cumplimiento de PCI para la información relacionada con la nómina. Asegurar que nuestros sistemas estén seguros, protegidos y aislados es algo en lo que pasamos muchos ciclos de ingeniería.
Sin embargo, la gran cantidad de información personal que requerimos tiene algunas ventajas. Nos da una tonelada de datos en bruto con los que trabajar para determinar si alguien se está registrando fraudulentamente con ZenPayroll para pagarse con una cuenta bancaria robada. Hemos diseñado un sistema de fraude completo para detectar y alertarnos cuando algo sospechoso está sucediendo. Este sistema es una combinación de muchos enfoques creativos bien establecidos y nuestros propios para determinar si un usuario es fraudulento. Si bien no puedo entrar en detalles sobre cómo funciona nuestro sistema de fraude, es algo que ha sido muy efectivo para combatir el fraude a través de nuestro sistema.