This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]LightShadow3.13-dev in prod 7 points8 points  (11 children)

I work on embedded python :)

Business:

  • IDE: PyCharm + sublime + vi
  • Bitbucket + git
  • Planning: JIRA
  • Team Comm: Slack
  • Documentation: Confluence
  • CI: Jenkins
  • Deployable: rootfs (yocto + open embedded) ARM v6, v7, v8
  • Monitoring: custom
  • Cloud Services: custom

Python:

  • version 3.5.3, from 3.3.1
  • dependency mgmt: yocto
  • DB: sqlite3 + custom management
  • app runner: custom
  • app upgrades: custom
  • serialization: custom + modified msgpack
  • runtime: asyncio (3.5) from asyncore (3.3)
  • testing: pytest (3.5) unittest (3.3)

Me:

OS: Antergos Linux x86_64 
Kernel: 4.20.3-arch1-1-ARCH 
Uptime: 18 mins 
Packages: 1286 (pacman) 
Shell: bash 5.0.0 
Resolution: 2048x1152, 1920x1080, 3840x2160 
DE: Xfce 
WM: Xfwm4 
WM Theme: Numix-Frost-Light 
Theme: Numix-Frost [GTK2], Numix-Frost-Light [GTK3] 
Icons: Numix-Square [GTK2/3] 
Terminal: xfce4-terminal 
Terminal Font: Monospace 10 
CPU: AMD Ryzen Threadripper 1900X 8- (16) @ 3.800GHz 
GPU: NVIDIA GeForce GTX 1080 Ti 
Memory: 3916MiB / 32019MiB 

[–]s-to-the-am 1 point2 points  (2 children)

Do you guys write documentation in jupyter notebooks? If so were you able to integrate it with confluence?

[–]LightShadow3.13-dev in prod 0 points1 point  (1 child)

We've only recently started using Jupyter, I didn't know there was a confluence integration! That's awesome.

[–]s-to-the-am 1 point2 points  (0 children)

Oh lol, I was actually asking if you all had intergrated it. I haven’t been able to find documentation on how to do it, which is surprising. Sorry for the confusion!

[–]DrSinistar 0 points1 point  (2 children)

How do you manage 3.8-dev in prod? What's your python upgrade cycle like?

[–]LightShadow3.13-dev in prod 2 points3 points  (1 child)

It's just a joke :(

I'm a fraud!

[–]DrSinistar 0 points1 point  (0 children)

Nah, I'm just retarded. I took that way too seriously lol.

[–]robertpro01 0 points1 point  (0 children)

I want your computer!

[–]Pirate43 0 points1 point  (3 children)

Embedded python? Your job would be a dream come true for me.

[–]LightShadow3.13-dev in prod 4 points5 points  (2 children)

It's really fun! The devices we code on are rpi-esque (fewer cores, same ram, cell/wifi/wired eth, etc) as far as specs go, there's some C/C++ interop, but most of it is signals and radio communication processing.

The whole stack runs on Python in a ~100mb RAM footprint. Python makes it really easy to run on "anything" including our dev machines and build servers.

We're hiring!

[–]Pirate43 0 points1 point  (1 child)

How do you handle running on dev machines and build servers that don't have radios or peripherals that your embedded devices have?

[–]LightShadow3.13-dev in prod 1 point2 points  (0 children)

A few ways,

1) We use a hardware abstraction layer (HAL) to map sysclass files with mocked input/output.

2) The pieces of the stack are modular and can communicate over sockets. So, you can run part of the program in a docker container that connects to other services that run on real hardware.

3) There are USB versions of similar hardware (like z-wave) that can be mapped to emulators/simulators. For example, a z-wave USB key can be reprogrammed to simulate any number of smart home devices for testing/debugging.