658 karma · joined November 19, 2007
Go build an Uber. Do it. Please. I wish you all the successes of this world.
Worry about yourself, not Uber.
You get the software releases as quickly as possible.
This empowers you to work with the latest releases and also forces you to be more conscious of what is supported by which software release. In which case you spin up VMs to test out all the other distros / software releases for compatibility concerns.
My 2 cents... Sometimes Ubuntu 14.04 will be perfectly fine for whatever environment you need...
Want to work on high performance networking software for ARM-based server and networking platforms?'
We're looking for software engineers who are comfortable digging into complex systems, identifying optimizations, and working with software and hardware teams to implement solutions.
If you want to make an impact in the software and hardware for mega data centers & tier 1 ISPs all the way down to your home router or SBC, we'd like to hear from you.
Apply here: http://careers.peopleclick.com/careerscp/client_arm/external... or email brian (dot) brooks @ arm (dot) com
Care about data structures, algorithms, cache utilization, hardware accelerators, latency & throughput, power consumption, operating systems & virtualization, network protocols & SDN, extensible & robust software, and languages & run-time systems?
Want to work on high performance software for ARM-based server and networking platforms?
We're looking for software engineers who are comfortable digging into complex systems, identifying optimizations, and working with software and hardware teams to implement solutions.
If you want to make an impact in the software and hardware for mega data centers & tier 1 ISPs all the way down to your home router or SBC, we'd like to hear from you.
http://www.arm.com/careers/index.php or contact brooks (dot) brian (at) gmail
Care about data structures, algorithms, cache utilization, hardware accelerators, latency & throughput, power consumption, operating systems & virtualization, network protocols & SDN, extensible & robust software, and languages & run-time systems?
Want to work on high performance software for ARM-based server and networking platforms?
We're looking for software engineers who are comfortable digging into complex systems, identifying optimizations, and working with software and hardware teams to implement solutions.
If you want to make an impact in the software and hardware for mega data centers & tier 1 ISPs all the way down to your home router or SBC, we'd like to hear from you.
Contact: brooks (dot) brian (at) gmail
Care about data structures, algorithms, cache utilization, hardware accelerators, latency & throughput, power consumption, operating systems & virtualization, network protocols & SDN, extensible & robust software, and languages & run-time systems?
Want to work on high performance software for ARM-based server and networking platforms?
We're looking for software engineers who are comfortable digging into complex systems, identifying optimizations, and working with software and hardware teams to implement solutions.
If you want to make an impact in the software and hardware for mega data centers & tier 1 ISPs all the way down to your home router or SBC, we'd like to hear from you.
Contact: brooks (dot) brian (at) gmail
Care about data structures, algorithms, cache utilization, hardware accelerators, latency & throughput, power consumption, operating systems & virtualization, network protocols & SDN, extensible & robust software, and languages & run-time systems?
Want to work on high performance software for ARM-based server and networking platforms?
We're looking for software engineers who are comfortable digging into complex systems, identifying optimizations, and working with software and hardware teams to implement solutions.
If you want to make an impact in the software and hardware for mega data centers & tier 1 ISPs all the way down to your home router or SBC, we'd like to hear from you.
Contact: brooks (dot) brian (at) gmail
One way to put it is that this highlights Go from a user's perspective.
The very same thing is true from the compiler developer's perspective.
I've found that the process of installing dependencies, pulling source, navigating source, building, testing, contributing patches, etc is important for success--as well as the user experience.
I've had bug-fix patches accepted into Clang, GHC, and Rust. I found Rust to be a bit pricklier than Clang and GHC. I'd like to make time to get a similar experience with Go--I suspect it would be good.
What, if any, does the convergence among these projects look like longevity-wise?
Hopefully by the time APs reach 10Gbps (at least 3+ yrs?) 10GBASE-T will be more affordable.
Location: USA
Willing to relocate: Yes
Technologies: C, C++, Haskell, Python, Go,
Linux kernel, Ethernet, IEEE 802.3, TCP/IP,
HTTP, HTML, CSS, JavaScript, React.js,
I2C, SPI, MAC, PHY,
parallel & concurrent programming,
algorithms, data structures
Résumé/CV: http://brpbr.com/ (resume upon request)
Email: brooks !dot* brian ^at% gmail
Looking for an opportunity to create & grow solutions to real-world problems via boundary-less engineering. Over 5 years experience in software for networking devices: L1/L2 Ethernet, Linux kernel, infrastructure, network protocols. Spare time includes contributing to OSS, programming challenges, and learning new technologies & languages.- Sometimes, a "No" means "we like your career trajectory; we've identified you as a candidate that we want to follow up with in ~6 months".
- Sometimes, a "No" means "we really like you; we think you'd be a fit here, we'll be constructing this team in ~6 months".
- Sometimes, a "No" means "we wont relocate; we wont fly you out here; we're only considering local (e.g. Bay Area) candidates".
- Sometimes, a "No" means that it's up to you to reflect on the situation. Take as many notes as you can during the process. Analyze what you said, wrote, acted, etc. It's up to you to determine how you could be better.
- When you get to the on-site and have the opportunity to learn a lot more, things might not be all ponies and rainbows like you'd imagine. Be open to what you didn't want to see, hear, or learn about. You might learn that you actually don't want to work here.
- You're racing against the clock. Balance is key. You hear advice about asking clarification questions, discussing trade-offs, etc. but at the end of the hour one of the most important things is the code you put up on that board. The interviewer will likely whip out their phone, take a pic, and that's that.
- Coding on a whiteboard, with a stranger, in an unfamiliar environment, after traveling many miles... is... challenging. Without much practice, you're at risk to fall flat on your face--I've face-planted my fair share, and it's always fuel to get back at it again.
- Interview as much as you possibly can. You learn about companies, people, technology, industry, challenges, etc. Practice, practice, practice.
- Sometimes, recruiters reach out to you for an initial call (you're excited), and then you learn that members of the hiring team haven't even seen your resume (orly? u think i haz de skillz dear rekrooter?). You then never hear back from the recruiter, or receive an email stating that they're not moving forward. I've only had a couple of these, but it's enough for me to strongly dislike contact before any member of the hiring team has reviewed my qualifications.
Remote: Yes
Willing to relocate: Yes
Technologies: Imperative, functional, and OO languages. Software / hardware interface. Network protocols. Extensible, modular software. Algorithms & data structures. Systems performance. Embedded software.
Résumé/CV: On request. Over 5 yrs experience working on software for Ethernet networking devices: L1-L3, kernel drivers, networking ASICs & NPUs, OpenFlow, infrastructure.
Email: found here -> http://brpbr.com/
Also agree with the statement that rolling your own is generally a bad idea.
Surely there are deeper technical challenges and social motivations to "a glorified messaging app".
How about considering the value of wide-spread human communication vs. multi-planetary human existence & space research?
Sleep. Your body requires rest.
Fruits & vegetables. You don't have to be 'vegan' or 'vegetarian': my motto is the more fruits & vegetables I consume the better. Juicing is a great way to consume large quantities of these foods. People give me the o.0 stare every time I mention that I get 'high' from kale--along with other dark greens and fruit.
Learn about other fields / domains that interest you. Find less technical intro books and find ways that you can apply simple algorithms to compute things or program systems that aid in automating and managing things in that domain. Create a domain specific language (DSL) for assisting in thinking about and computing things in a domain. These things should be interesting to you and potentially beneficial to your life! Start small, stupidly small, and just explore and have fun.
Build a discipline of studying and practicing. Shit takes time, and if you don't put in the time you won't get there. Build the habit of regularly spending deliberate study and practice time. Plan your trajectory and track your progress & velocity and adjust regularly.
Nootropics and other supplements: (ar)modafinil, racetams, artichoke extract & forskolin, choline, amino acids, creatine, etc. I am a believer in no biological 'free lunch', but it can be fun to explore these on your own and form your own beliefs about them.
First step is to get it all down in some persistent form. Second step is to iterate: organize, clarify, simplify, expand, etc.
Stack: C, C++, Haskell, Python, Embedded Systems, Network Processors & ASICs.
Resume: http://brpbr.com/static/Brian_Brooks_Resume.pdf
Contact: in resume
Looking for a rocket ship in a broken industry.
Replacing 20 people even at a company the size of Freescale is not just a "6-12 month setback." I would pull a much larger time frame out of my ass, especially if you were to consider the long-term value these employees had.
What sort of code are you thinking about? Even lower-level / non-abstracted atomics and memory fences that are specific to a particular architecture? I actually did run into code like this for a MIPS-based CPU and we converted the code to using the GCC builtins for portability. Funny thing is that the next hardware architecture toolchain wasn't GCC-based, so there was no benefit... we had to make wrappers for the atomics... and hunt down some absurd bugs related to L2 cache writebacks and mem fences. It was an exercise in how long I could stick with a problem... some serious hunting and staring at debug output / hex dumps..
[1] http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/Atomic-Builtins....
What about the pluto switch or the custom servers? Sure, they don't make chips or maybe don't even do PCB layout and all of that stuff, but I'm sure they have great hardware designers and embedded software people, no? I didn't even mention the google glass, mobile devices, and self-driving cars.
EDIT: Got it. Thanks. Was too eager to respond..